Join DeviceClient buttons
DeviceClient stores button states in the base class.
MouseDeviceClient and HapticDeviceClient each have a separate events for it. buttonStateChanged, mousePress, mouseRelease. It would be nice if buttonStateChanged was reusable with MouseDeviceClient.