Pass the Request to the exception handler

We change the exception handler to take Maybe Request, because some
exceptions will happen before we have managed to parse a Request yet.

Add an exception handler to everything just after the Request is parsed
that does pass the Request through.

This allows the exception handler to give more useful data to the
application developer.

Closes #173