JWT Bearer Authorization Grant for #20 Take 2

Let's try again :)

What has changed:
 * Added support for JWT Authorization Grant Type.
 * Added tests for the above.
 * Added `OAuth2_ClientAssertionTypeInterface` with `getClientDataFromRequest()` and `validateClientData()`.
 * Updated files touched in this commit to psr2 standards.