Ring style middleware

Per issue #4. Got rid of the wonky flow through pre/post action middleware i had
in my initial draft and replaced it with a port of Clojure's Ring
Spec to scala.