Don't remove Bluetooth/Network interfaces when Enabler closes.

Fixed #22.

The VehicleService running in a remote process is in charge of these, so we
don't need to shut them down when the Enabler closes. If you shut it down, it
means that whenever you switch away from the Enabler the connection to the
interface is lost.
Manage in-process sinks and sources in a process; doesn't die with activity.

Fixed #25
Fixed #26
Make Enabler a "singleTask" so only one instance ever exists.
Call super.stop() *after* cleaning up, since members will be nulled.

In particular, fixes a null pointer exception when disabling Bluetooth.
Maintain scroll position in data source/sink list in Enabler.

Instead of blowing away the adapter each time we update, keep the same adapter
and just update the list.

Thanks to
http://vikinghammer.com/2011/06/17/android-listview-maintain-your-scroll-position-when-you-refresh/
Be clear that BluetoothManager does not do device discovery.

Also, cancel discovery only if it's actuallyu happening to avoid spurious
errors in the log.
Log full details of Bluetooth connection issues.
Fix typo in log message.
Revert "Call super.stop() *after* cleaning up, since members will be nulled."

This reverts commit 2e2d34b7a54df814865dc96da61baed9116bcee9.
Only close streams if they're valid.
Mark data source as not running *before* disconnecting from socket.

Otherwise, there's funky situation where the device tries to reconnect even
though it's in the process of shutting down.

Fixed #28.