Fix for Codeplex-1781 ControllerContext not set in exception
handling/logging

The issue here is that when an action (or ApiController infrastucture)
throws an exception, it might be handled along one of two code paths
depending on whether or not any exception filters are configured.

If any exception filters are present, the logging/handling will take
place inside the 'IExceptionFilters' block. Otherwise logging/handling
will take place inside the 'HttpControllerDispatcher' block.

The 'IExceptionFilters' block would correctly provide a ControllerContext,
and the 'HttpControllerDispatcher' block did not.

The fix is to, when possible, provide a ControllerContext in the
'HttpControllerDispatcher' catch block. Note that it is only possible to
provide a ControllerContext when an exception was thrown the controller or
action itself. If an exception is thrown during controller selection or
controller activation, there is no context, and thus none provided.