Usb api

@devoncarew 

Add support to use the new usb device api. It allows the user to select from a list of available `adb` devices. It also allows to add a new device. This opens a device picker. Once selected, the permission is retained forever until revoked.

Should we add a material design button for `+` => add device ?

![screen shot 2014-11-12 at 11 06 34 pm](https://cloud.githubusercontent.com/assets/2711803/5024530/99391f2a-6ac0-11e4-93a1-b516d696f82b.png)

Instead of a developer flag (`SparkFlags.enableNewUsbApi`), what about having a method we could call that would tell us whether the new APIs were available? So, mobile/usb.dart, `newUsbAPIsAvailable`? It could either use JS interop and reflection to know if they were available to be called, or use the chrome version.