Isolate a template Context separate from Middleman::Application

Here for discussion sake,

This creates an isolated class for evaluating template contexts to continue slimming `Application` down.

Thoughts?

Asset hash tests don't pass, but they are a PITA I'm not going to deal with right now.

This also exposes the weird haml buffer/context bugs we have.