Drone: Changing the Drone listener setup for a broadcast event

This should clean up the code, and enable for users receive the events more easily
Merge branch 'master' into events
Drone: Adding method to support further implementations of the drone event's listners
BT2: Some further BT tweaks ...
BT2: playing part 2
fixed issue #434
Merge pull request #435 from ne0fhyk/fix_map_screen_crash_on_rotation_while_connected

Fix map screen crash on rotation while connected
Drone: Removed the interface method created at the last commit, it can be reimplemented in the future when it's needed.
ModeDetail: Cleanning up all the modeDetail fragments
Drone: Making the UI work with the new 'broadcast' listner of the drone
Preferences: Moved the USB connection type preference to the main screen
Formatting: Automatic formatting of the preferences file
Merge pull request #437 from arthurbenemann/pref

Preference screen ui update
Merge pull request #438 from Paku-/BT2

BT2: BT connectivity works ...
Merge branch 'master' into events
Drone: Changing the Event broadcast method to include the drone which generated the event
Drone: The type changed notification should only be sent when the type changes
Drone: Adding notification to differ a GPS lock from a GPS satellite count change.
reduced object allocations in the heartbeat dispatching code.
Merge pull request #443 from ne0fhyk/fix_heartbeat_object_allocation_issue

Issue #432: Extra Garbage collection fix