Check for context done while waiting in Client.DeviceAuth
Plumb context
Split server metadata into separate file
Add support for scope param in refresh token request
Handle nil options properly
Add docs to the next function callers should use
Add support for client credentials grant
Rename PollAccessToken to PollDeviceToken

This method is specific to the device authorization grant.
Pass grant type to Client.doToken

Ensures this is always set, and avoids typos.
Send client ID in token request for public clients
Rename AuthorizationResp to AuthorizationCodeResp

This struct is specific to the code grant. It will not be used for
other grant types.
Move ParseAuthorizationResp to Client

Allows us to check "iss".
Add support for auth server issuer identification
Document that Client.HTTPClient is optional
Panic on unsupported token type in TokenResp.setAuthHeader
Unexport TokenResp.SetAuthHeader

This function only supports bearer token types, and adding support
for other token types or returning an error on unsupported token
types is tricky. It's easy enough for callers to re-implement if
they really need to.

Client.NewHTTPClient should be preferred since that will be able to
handle refreshes.
Require bearer token in Client.NewHTTPClient
Add TokenType type
Implement json.Unmarshaler

This allows the structs to be used in a standalone fashion, without
Add support for client registration