Configure error handling as a block on a service host

This changes error handling to be a block configured on a service
host instead of as a exception handler class. This is a simpler
interface and should be easier to work with. The block is passed
an exception and as much information as possible for the request.
It can then decide to generate it's own response, by returning a
protocol response or an integer/symbol. If a response is not
generated by the configured error block, then Sanford will
generate it's own response.
Code cleanups

This cleans up some requires and a few other things that snuck
into the code base. The `halt` methods were passing in the instance
of the calling handler, which wasn't used. Same goes for the
backtrace/caller that was being passed.
Merge pull request #37 from redding/jcr-error-handling

Configure error handling as a block on a service host