API refactor, adding UsbSerialPort interface.

- UsbSerialDriver is now a discrete interface.
- UsbSerialDriver provides getPorts() method, returning one or
  more usable UsbSerialPort.
- Use of UsbDeviceConnection is deferred until open(),
  making it possible to probe for ports without
  permission from Android.

(Thanks to Felix for inspiring some of these changes).
Rename Cp2102SerialDriver to Cp21xxSerialDriver and add Usb IDs for more Silabs devices

Conflicts:
	UsbSerialLibrary/src/com/hoho/android/usbserial/driver/Cp21xxSerialDriver.java
	UsbSerialLibrary/src/com/hoho/android/usbserial/driver/UsbId.java
	UsbSerialLibrary/src/com/hoho/android/usbserial/driver/UsbSerialProber.java
Update README.md
UsbSerialPort: Add port number to interface.
UsbSerialProber: Expose getDefaultProbeTable().
Fix open().

Issue #53.
open(): Set mConnection eagerly, and clear on failure.

Similar to CdcAcmSerialDriver. Issue #53.
Add ProbeDevice.
Convert to gradle.
cdc: Add async read capability.
cdc: Special case read timout == Integer.MAX_VALUE.

Some systems return 0 from read() when the device has been disconnected.
The only way to detect this is to 'never' expect a timeout.
Update build tools.
Merge branch 'develop'