Added support for opening device from file descriptor

Used on Android to allow the android.hardware.usb.UsbDeviceConnection.getFileDescriptor() method to be used to open the device.
Changes adapted from http://stackoverflow.com/a/14164544/2588528