version to 0.28.0

* template engine #138
* template source #139
* add `partial` method to template source/engine API #140
* configure template source on the server; pipe down to the runner #141
* break out the null logger into its own file; update requires #142
* pass logger to tempalate source on init; set as engine default opt #143
* add capture render/partial methods to the template source/engine API #144
* cleanup template source/engine rendering api #145
* add `partial` method back in to the view handler and runner APIs #146
* partial: remove magic-underscoring of partial template names #147
* sinatra runner: render with template source if there is an engine #148
* some misc cleanups #149

/cc @jcredding