Fixed joystick support

- Added support for events SDL_JOYDEVICEADDED and SDL_JOYDEVICEREMOVED.
- Added Urho3D events E_JOYSTICKCONNECTEDand E_E_JOYSTICKDISCONNECTED.
- Added SDL_JoystickID as a JoystickState variable.
- All joysticks are open by default. All joystick events will receive
the InstanceID of the joystick for application-level control.
- SDL_JoystickID is now used instead of the Joystick index. This way,
the order that joysticks connect does not matter. If a joystick or
controller gets disconnected, and then later reconnects during the same
game session, it will retain the same SDL_JoystickID.

Note: Virtual (on-screen) joysticks should still work, but has not been
tested.