Modified to allow share mode control

Modified HidDevice to use a single handle with a specifiable share mode.
This allows applications to claim exclusive access of a device in order
to prevent multiple instances from attempting to use the device at the
same time.