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

I tried and failed a few different itterator setups for this.  I don't know why they didn't work but I ended up with this mess.  Your suggestion is one I have not tried yet.  Thanks for the tip.