Adding joystick button support

Supporting up to 4 devices and 32 buttons each.