Added ClientCredentials and Password Grants

This adds support for the Client Credentials and Password Grant.
We'll put it down to magic and it can be sorted out later. :)