Rearrange code and add documentation for perspective code.

No functionality changes in this code, just code clarify improvements.
Remove unusable Radio Control widget.
Fixed bug where 2 widgets were added to the wrong view.
Remove the PrimaryFlightDisplay from the Planner view as it doesn't make sense there.
Remove the DEFAULT view from QGC's perspectives logic.

It was a poor proxy for better coding around the problem of bad settings or the lack of
settings on first-run.
Refactor MainWindow settings saving on shutdown.

Fixes bugs with savings settings for the window state, theme, UAS-connected view, and low-power mode.
Also removes some unneccesary logic that attempted to handled unclean shutdowns, which I haven't
been able to reproduce.
Removed unused variable.
Remove all unnecessary calls to QSettings.sync().

This function is called automatically when a QSettings object is destroyed,
so is rarely needed to be called explicitly.

There are still some cases where
a QSettings object is passed-by-reference, so there I left the sync() calls as
it's unclear how permanent those objects are and if they'd call sync() before
application shutdown
Remove some now-dead code.
Remove duplicated engineering view.
Remove the Software view.
Make the Perspectives menu follow the same ordering as the toolbar.
Rename Simulation to HIL Simulation.
Clean up old view/actions in the MainWindow.

Renamed some variables.
Removed unused joystick settings stuff.
Deleted unused actions.
Preserve backwards compatibility for view settings.
Rename Pro menu to be just More.
Merge pull request #1052 from Susurrus/views

Refactoring on MainWindow's view and settings code