Document registers for K800 and M525

See also https://lekensteyn.nl/logitech-unifying.html for tools being used to
draw conclusions. Extended dumps and description can be found on
https://git.lekensteyn.nl/ltunify/tree/registers.txt .
Merge pull request #22 from Lekensteyn/doc-regs

Document registers for K800 and M525
Parse battery status of HID++ 1.0 devices

This applies to K800 but it seems also to apply to M510. The numbers are based
on the HID++ 2.0 spec that state the following for GetBatteryCapability:

    If number of levels < 10 or if mileage is disabled then report are
    mapped to 4 levels this way.

    0%->10%     critical
    11%->30%    low
    31%->80%    good
    81%->100%   full

    i.e. to report battery low, FW send 25%, to report battery good, FW send 50%.
Merge pull request #23 from Lekensteyn/hid10-battery

Parse battery status of HID++ 1.0 devices
Make BooleanValidator accept bytes too besides int

Previously, only the first parameter byte can be read or written. After this
patch, it is possible to select/write more bytes by specifying a mask of type
bytes with the appropriate length.
Support FN keys swap for K800
Add K710 with FN key swap support (pwr/Solaar#18)

The K710 keyboard is (according to the issue reporter) part of a MK710 combo
(which also contains a M705 mouse). Observing a succesful 07 register read,
I think that it is a HID++ 1.0 device too that uses the same register for FN
key swapping as K800.
Fix battery status reading, add "fully charged"

Commit 438c501fae2486f1520eb485c14662c3a632fd2c introduced support for HID++ 1.0
battery information. That accidentally selected the third parameter instead of
the second one. This commit fixes that and additionally adds a "fully charged"
status too that was found on the K800.
Merge pull request #26 from Lekensteyn/hid10-battery

Fix battery status reading, add "fully charged"
Merge pull request #24 from Lekensteyn/hid10-fnkey

Add FN key swap support for K800 (and presumably K710)
version increased to 0.8.7.1
small fixes to hidconsole
hidapi: dropped native, slight update to the python implementation

added an optional filter for driver name when enumerating devices
move the code for single-instance check into its own file
incipient support for the Nano receiver
more explicit logging
split read_battery in status into its own function
better handling of eq/ne/hash in receiver and device objects
only dispatch notification events from the specialized listener thread
renamed event alert levels to be more clear