Move responsibility for wake locks to the VehicleService.

This also makes the WakeLockManager robust to acquiring a lock multiple
times.
Move the VehicleService to foreground based on pipeline activity.

Fixed #62.
Remove extra call to BluetoothVehicleInterface.stop().
Make data sources "disconnected" by default to keep pipeline alive.
Make sure to mark source disconnected before removing the callback.

Otherwise the callback can't be notified that we disconnected!