device: Parse reports in a transport agnostic way.
Cleaner module separation.

- Daemon is no longer imported anywhere but __main__.
- Logging has been moved to a separate module.
- Internal exceptions instead of library specific exceptions.
- Bluetooth code is now cleanly separated into its own backend.
- Stub hidraw backend for future USB and Bluez support.