Bug fix and releasing GIL during I/O

- Fixed issue where manufacturer and product strings were incorrectly decoded on OS X (not sure about other OSes). There was a 0 byte inserted between every character, like the wrong char size was used. Fix tested on OS X 10.10 and Windows 7.
- The GIL is released during read(), write(), set_feature_report(), and get_feature_report() calls. This makes it possible to improve performance by moving HID I/O to a separate thread.
- Also made VID and PID parameters on enumerate() optional, to make it more natural to get a list of all HID devices.