Added async/await support

Added support for the .NET 4.5 async and await keywords. This makes
writing non-blocking USB code substantially easier.
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.
Merge pull request #44 from neilt6/master

Added async/await support