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
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
Merge branch 'master' into events
Attempt to recover lost ML changes
ML2: source correction
ML2: source correction 2
ML2: source correction 3
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
InfoMenu: If the layout of the menu has not been finished fail silently on an update.
Merge branch 'master' into events
Events: Remove the extreme logging of events.
Events: Avoid duplicated listeners on the event broadcast.