added comments, and cleaned up code (as per github pull request feedback)
removed mm prefix in connection code
refactored run loop in BluetoothConnection to be more readable, and not swallow arbitrary Throwables