Add some framework for external authentication

DISABLE_SESSION define is changed so that existing session are continued
but new sessions are not saved. This allows external auth backends to
redirect to an external site and that site redirect back to a `/api` URL and
the user's session will be continued.
Implement external authentication for scp
Implement external authentication for clients
forms: Permit clone()ing a FormField

The `id` needs to be changed for the new clone in order for the POST data to
line up with with new field
Permit clients originally from ext auth to set a passwd

If a client initially authenticates with an external source such as Google+,
the user should still have the ability to set a password via the password
reset mechanism.
Fixup check ticket access page styles
Merge pull request #804 from greezybacon/feature/external-auth

External authentication (like social media)

Reviewed-By: Peter Rotich <peter@osticket.com>