Fix the hidden error messages (bug 922164)

This fixes the erroneously hidden error messages for the general case. Also I've improved the handling of error screen on a timeout like this. It means that if something succeeds it's possible call a function to clear the error (An example is clearning the error if you login after the timeout has expired which is possible on the desktop).

To test this locally - set TEST_PIN_UI to False and hit /mozpay/ without a req param.

To test the other bits. Set the LOGIN_TIMEOUT to something low e.g. 10000 and try it in the browser (Set TEST_PIN_UI back to True first). Click sign-in and wait for the timeout.