[Templating] String templates perf improvements

Create a StringTemplateSource only once per string template, not once
per creation request. Remove ExternalTemplateSource in favour of
returning a StringTemplateSource that gets updated. Parse nodes once
to avoid constant HTML re-parsing
[KO] domElement source will cache parsed nodes
[Part] Use domElement source for overriding parts