WIP: Redesigned API (Caching and Debugging).

Initial support for improved template debugging: #132, #87, #53.

- Added an ICachingProvider interface to support user defined caching strategies: #47
- Redesigned the API in this process.
- Added Legacy classes to support the old API by using the new API (marked as obsolete).
- Within the redesign support for streaming the output of templates was implemented: #27, #169
- With the new API one can exactly control where the templates come from (ITemplateResolver) and how they should be cached (ICachingProvider).
- The old API works for the complete test framework.