Nesting templates basic support

Added support for binding to "this" to bind to the object itself rather
than a parameter on the object. Also support for nested templates has
been improved by providing a default formatter for this. To nest a
template you can use the 'nestedTemplateFormatter'. An example is below:

data-format="nestedTemplateFormatter"
data-format-options='{"parentElement": "ul", "template":
"#templateThis"}'

data-format-options is required to at least provide a template in the
same format as the loadTemplate function requires. parentElement is the
element to use to contain the template.  If this isn't provided then
parentElement will be a "div". It is also possible to just provide a
template and not an object.

Documentation will need to be produced on this change.