hidapi 0.12 supports opening hid devices non-exclusively on darwin,
but doesn't do so by default.
pyhidapi doesn't support opening the device non-exclusively, so this
workaround calls the hidapi C-functions directly on darwin systems.
The original plover-hid tried to reuse the keycodes from the GeminiPR protocol
and had pretty weird key ordering, making the unnecessarily hard to
implement.
Switch to sequential numbering of all standard steno keys, and then add
the extra keys after those.
The ordering is the same as the ordering used by the TXBolt protocol.
We used to define different report formats based on report ID. This
wasn't really in spec with how HID is meant to be used and would only be
possible on usb devices defining a separate endpoint for Plover HID.
Instead we remove the complicated report (format) and become agnostic to
the report id used.