Misc. Fixes & more extension points.

Simplify caching:
- We were caching too much. Having this second cache made it impossible to bust the cache when the mtime of a file changed

Add extension points for TemplateLoaders
- Certain environments want to look for templates at different places 

Fix handling of FileNotFound & Handlebars compilation exceptions
- Can't compile != Can't find file. We were closing the stream which always made the response a 200 OK.