Auth object to pass on authentication details

This creates and implements (for the storage part) an authentication object that can hold auth information for different auth procedures. Upon authentication, it sets a member variable through which the app can check what kind of authentication is set. For user/pass auth, it holds username and password, for gsi auth, it holds the userDN, the public key, and a flag whether authentication was successful.
The authentication process can still be delegated to the backend, e.g. in case of irods.
This is extendable for other authentication mechanisms, but the backends must also be adapted to support them.
For now user/pass works with local/dmlite/irods, gsi only with local/dmlite.

This touches the registration as little as possible, that one still takes the auth information directly from the flask request object.