Optimize templates. fixes #2033.

Use a single StringBuilder for building template output (as opposed to many string builders appending each other up the tree).
Don't create collections for single items in template source.
Change Appendable's definition to support single StringBuilder.