Recast CheatyJoystick as a Joystick

realized that I could just implement CheatyJoystick as a Joystick object, instead the silly lower level GenericHID.  Now it's constructed as a CheatyJoystick but immediately cast to a Joystick, so that nobody knows the difference :) and everything else is truly unchanged.  Due to this, reverted back to old OI object, again, because no outside the CheatyJoysticks themselves will know the difference.

Also cleaned up some other things, imports, comments, etc.  yay