Skin templating system.

This change introduces a template system into the current skin system. With all the new features we are adding in Mixxx 1.12.0 it is clear that the skin system presents a huge maintenance burden for @esbrandt and others. This allows us to slice the skins up into small, re-usable chunks.

For an example of what a skin using this looks like, see this skin:
https://github.com/rryan/developer_skins/blob/master/DeereSkeleton4Deck1280x800-WXGA/skin.xml

This is largely a refactoring of code that used ```WWidget::select*``` and ```XmlParse::select*``` to use a new ```SkinContext``` class that contains the current state of the variables in the current context in the skin.