Plus a large number of other changes to allow for orderly shutdown of objects without crashes or asserts. This is need for unit tests to create/delete global state around every test.
- allow unit tests to use QGCApplication - clear global singletons for each unit test run