trackDevices/stopTrackinDevices and the callback is hard to follow, and it should be easier to let AdbDeviceTracker send the observer notification instead of moving that action to this module. We would get rid of all the callback stuff and remove a bunch of code from this module.
Then we need the hadDevice flag. It seems like we should ensure having only one DeviceTracker at a time. One for each new call to start. What about keeping only one instance and let AdbDeviceTracker expose a `hadDevice` property, that would be queried each time we need to know from adb-pure.js (or anywhere else) if a device is connected. Does it sounds correct?