Auto retry on validation failure

This PR attempts to make ticket validation [failures](https://errors.uscm.org/apps/52b33d1fe694aaa9ab000384/problems/53e51569139b211ce900003f) less common by introducing a 'retry' mechanism.

A retry is a redirect back to CAS to get a new service ticket. This should be transparent, since the user will already have a TGT cookie.

After 3 retries (tracked by the HttpSession) the user is finally given a 500 error.