Move all the menu/action manipulation over to a new class, so that it's self contained

This fixes a bunch of bugs with setting the title for widgets, deleting
widgets, etc.  It also reduces the amount of code duplication, which is
always a good thing.
Don't translate the object name, otherwise the config will break in non-english languages
Fix warning "Cannot set minimum size to (-1,-1)"
Make sure that our custom widget doesn't reuse an object name
Reduce code duplication
Clean up when exactly we should save settings, and add in checks to make sure we do not do it incorrectly
Fix crash when removing an item from a custom widget
Merge the startEditMode() and endEditMode() functions into one, and remove code duplication
Fix minor const issues in QGCToolWidget
Fix setStyleText() to apply to future curves
Remove MainWindow styleChanged() signal

There's no need to create multiple signals - connect() is fine with
connecting styleChanged(MainWindow::QGC_MAINWINDOW_STYLE)  to a slot
with no parameters.
Add an XY plot widget

This allows you to add XY graph plots of any data.  For example,
x,y position data of a servo.
QGCXYPlot: Seperate the number of points shown and number of points store
QGCXYPlot: Add smoothing ability to smooth the last N points of data
QGCXYPlot: Clean up layout a bit
Allow user to stop and start the plot, and scroll back in time
Merge pull request #400 from johnflux/config

A hefty commit to try to clean up MainWindow