Fix external_auth to properly use retfun for @ssl_login_shortcut()

The @ssl_login_shortcut() decorator has been broken in the edX codebase for some time, because it did not properly wrap the function being decorated and pass this along to be called after authentication is completed.

This PR fixes that bug.

The changes made have been in production in the residential MITx systems at MIT since spring 2013.

This is an update of PR #653 with tests and the removal of the IMMEDIATE_SIGNUP_FEATURE