Authentication Framework
Allow methods to be created and used without changing (or recompiling) the GCS.
Authenticate a user attached to a session.
Provide the authentication protocol complete control over a TCP connection to to the client.
Blocking semantics:
- Client auth module blocks, as it runs in an application context
- Server auth module does not block, but can use the event processing loop of server to wait for events, or fork another process.
Currently the only way to re-authenticate as a different identity is to disconnect and reconnect.