move some exception handling to a better place

HTTPExceptions should be handled in the outmost callable
that way it's easier to catch all the exceptions that may arise anywhere in objectquery code
strategically moved all the debug logging and exception handling into `__call__` method of the middleware
Yeah that thing is kind of confusing, Response must be a callable and it returns (approximately) itself.
Usually there is no need to call get_response() if you already have swob.Response in hand