Don't show ui do unit tests
New FactSystem unit test
Move UAS and MAVLinkProtocol back to main thread

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.
Merge pull request #1118 from DonLakeFlyer/FSTest

Combined pulls #1113 and #1115