Trying out new ideas for next year.
The subsystem manager class handles inter-subsystem logic and command priority.
Subsystem classes are now divided into RealIO and SimIO subclasses that both inherit from an abstract main class.
Documentation (and more comments), yay!