Added convenience template SubsystemWithCommand. Subsystems should now extend SubsystemWithCommand<DefaultCommand> instead of Subsystem, where DefaultCommand is the wanted default command, or void if there should be no default command.
Added empty Pneumatic subsystem.
Added RelayPort and SolenoidPort enums to Robotmap.h
DriveWithJoystick now squares joystick inputs.
Refactored subsystem/command structure:
    - CommandBase has been removed.
    - Instead of inheriting from CommandBase, commands now inherit directly from Command.
    - Subsystem and OI instances have been moved from CommandBase to Main, and can be accessed through get methods such as Main::getDrive(), Main::getPneumatics(), and Main::getOI().
    - OI initialization should now be done in OI::init instead of constructor, as the constructor seems to get called at a time when setting up commands for buttons doesn't work. OI::init gets called at the proper time.

This should get rid of circular includes when dealing with Subsytem/Command includes, and remove the need to add forward declarations when using SubsystemWithCommand.