Support id_token validation and discovery flow.

I added the following features.

1. Support state parameter.

2. IDToken Validation
  - http://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation

3. Discovery
  - http://openid.net/specs/openid-connect-discovery-1_0.html

Again... not a problem that will keep me from accepting this, but would appreciate going back to two spaces instead of four like it was.