Feature to allow changing the SSTemplateParser used in SSViewer

The motivation for this was to allow module developers to change what parser is used to parse SilverStripe templates. This change enables people to compile their own version of the SilverStripe template parser and use it without modifying core files.