wacom: move out get_oled_sys_path () from main

Kernel 3.17 introduce a new ABI for Wacom devices (the path changed).
In order to properly detect this and be able to differentiate both ABI,
split out the retrieval of the OLED sysfs node first.

https://bugzilla.gnome.org/show_bug.cgi?id=734458
wacom: move out 1-bit handling of Bluetooth OLED buffers

No functional changes:
- move out 1-bit packing into its own function
- convert if () else if () else in a switch/case

https://bugzilla.gnome.org/show_bug.cgi?id=734458
wacom: check for the new HID unified kernel ABI when setting OLEDs

In kernel v3.17 and later, the Wacom OLED sysfs attribute is located under
the HID node, not the USB one. This new path is now common between USB
and Bluetooth, so no special handling is required for Bluetooth to
retrieve this path.

Check for its availability first, and then fall back on the old path.

https://bugzilla.gnome.org/show_bug.cgi?id=734458
wacom: new kernels required the Bluetooth oled data to be scrambled

The unified wacom kernel module now uses the same API for OLED
either on Bluetooth or USB. The choice has been made to not scramble in
the kernel the incoming data to keep the USB (most used) untouched.

Implement the scrambling for bluetooth in g-s-d.

https://bugzilla.gnome.org/show_bug.cgi?id=734458
wacom: check for the new HID unified kernel ABI when setting LEDs

In kernel v3.17 and later, the Wacom LED sysfs attribute is located under
the HID node, not the USB one. This new path is now common between USB
and Bluetooth, so no special handling is required for Bluetooth now.

Check for its availability first, and then fall back on the old path.

https://bugzilla.gnome.org/show_bug.cgi?id=734455