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.
Merge pull request #2268 from matthew-lucidchart/pullrequest-template-optimizations

Optimize templates. fixes #2033.
Merge remote-tracking branch: upstream/master