[Mac] Improve joystick driver

Changes:
- Joystick GUIDs are now calculated correctly
- Joystick HID elements are now reported in the same order as SDL2
- GamePad configurations now work correctly and identical to SDL2
- A lot of duplicated code has now been removed in favor of common interfaces with other IJoystickDriver2 implementations