Refactored redirect() method to createRedirectException()

This now returns the exception to throw, rather than throws it directly, as the assists with IDE handling of code flow.

Also updated README with details of this change