OpenID configuration options, usso constructors.

Made OpenID integration more configurable by introducing a shared
context struct for OpenID. This will allow use of more advanced storage
backends for managing the auth protocol and avoid memory leaks at scale.

Made protocol scheme ("http" or "https") a constructor arg to OpenID and Usso
scheme as these cannot be inferred from the http.Request (as far as I
can tell).

Made token a constructor arg as well to allow different services to
uniquely identify themselves. Endpoint as well as service name should be
factors in selecting a token name.

Hex-encoding the cookie name as it should be based on the token but some
characters break the cookie format. This could probably use improvement.

Added OpenID web-based and OAuth command-line based constructors for
UssoScheme, logic to handle the different capabilities of each. Prevent
a web server to prompt a terminal for a password, etc.