Use the new optional argument to endRequest in the middleware
Currently endRequest is called twice on an exception if Django
intercepts the exception and returns it's own result. By setting
optional=True we do not crash on 'assert self.in_request'.
Add optional argument to endRequest
The optional argument allows endRequest to be called more than once,
as long as any invocation after the first has optional=True.