Implement gjs_joystick_describe_unopened

... in terms of gjs_joystick_open() and gjs_joystick_describe().

This is a convenience function anyway.
Implement "data received" event

TODO: handle "device disconnected" situation.
Implement dispatch function
Implement loop function.