Use SkinContext instead of XmlParse in LegacySkinParser.
Make LegacySkinParser::parseNode return a list of widgets instead of a single widget.
Process standalone <SetVariable> nodes.
Allow embedding a <Variable> node within a <SetVariable> node.
Add <Template> support to skins.

* When a <Template> tag occurs, load the template from file and expand it.
* Cache the template file DOM to prevent repeated parsing of template files.