[Input] Added Keyboard/MouseState.SetIsConnected to mirror JoystickState
[Mac] Do not store *State structs directly

Storing Mouse/KeyboardState structs directly makes updates more
difficult than they should be. It is simpler to create simple classes
instead.