CASC-233 ErrorRedirectFilter Can throw Null Pointer Exception

Problem: the ErrorRedirectFilter assumes there is a root cause and will null pointer if there is not.
Solution: Only use the root cause if there is one, otherwise use the original exception.

QA Notes: Added unit test to confirm non-root cause error.
Thanks for following up.
I never feel comfortable with a try/catch ```Throwable``` as I think it makes no sense to catch an OutOfMemoryError or a LinkageError...
I'd prefer see a try/catch ```Exception``` even if I can live with your current solution.