first pass at compiling and rendering templates

This implements `compile` and `render`. There's no real support for layouts yet. A change needs to be made to Assemble to pass in a `body` variable all the time to support layouts the way Assemble does it.