Make error check code simpler for libusb1 backend.

And return the python integer instead of a c_int instance.
Raise NotImplemendError when libusb1 returns *not supported*.

Not all features of libusb 1.0 may be implemented in all platforms.
When we get a not supported error, instead of raising an USBError, we
raise a more descriptive NotImplementedError exception.
Use libusb_strerror to translate erro codes to strings.
Update decode-request-type utility to work with python 3.
Refactor the error check code.
Implement the new method clear_halt.

Clearing an endpoint halt/stall condition may require awareness of the
OS. If we bypass it and use a direct control transfer, the OS may think
the endpoint is still stalled and refuse to issue a transfer to/from it.
Disable set_feature/clear_feature test case under Windows.

We are having trouble with clear_halt call in Windows. Disable this test
until we find out what's going on.
Do not create a new array object when we already have one.

Now when as_array function receive an array object, it just returns it,
as we need to do nothing.
Allow inplace read transfers.

Now the read function can receive an output buffer of the type array
where the data transfered will be put in. This allows the buffer to be
reused for future read transfers, avoiding the overhead of creating a
new object for each call.

This is based on the original work of Marijn van Vliet (pull
request #25), but instead of creating a new function readinto, we
"overload" the read function to allow it to receive the buffer.
Support inplace data read for control transfers.

Now instead of the number of bytes for IN data stage in control
transfers, you can pass an array object to hold the data read. This
avoids the overhead of creating a new object each time we issue a
IN transfer.
Move clear_halt test case to the end.

Since clear_halt can be problematic in Windows, we move it to the end of
the tests so it cannot fail other tests.
Merge branch 'readinto'

We can now reuse buffers for read transfers.

If we give an array object in the size_or_buffer parameter instead of
the length of the read, the data read will be put into the array. The
number of bytes requested to read it equal to the buffer length times
the array.itemsize property. The returned value is the number of bytes
actually read.

closes #25.