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

Would seem like the parent settings path should be hidden from the links? It has to be duplicated in each Link which is error prone.