Prototype for load/save comm link settings using new QGCSettingsGroup class

INCOMPLETE + I hope the diff works. 

Using a class to help serialize groups of data in an organised way.  The QGCSettingsGroup is inherited rather than instantiated which leads to multiple inheritance :-(

Changes:
Only the UDP link class is implemented so far.  Serialization is not done in the others.
Some changes were needed in MainWindow and QGCApplication.

Issues:
Multiple inheritance-  Is this ok?
Where to put the class factory to support link class generation during settings load.
Should the link reload be a behaviour of MainWindow or Application?  What happens with multiple main windows?
Does this model fit other groups/classes that need to be stored in settings?

Not done:
Delete old settings name when link name is changed.
Store/recall protocol map and reconnect
Per link auto reconnect

Supporting hierarchical groups with pparentgroup seem interesting but I don't think we have any of those that I know of. Seems like only supporting a single level would keep things simpler. Also having groupName as an optional parameter doesn't seem like a good idea. I'd always force a specific name for each group.