ID Site implementation

Synopsis:

* New method `Application.createIdSiteUrl()` for creating the redirect URL that takes the user to the ID site

* New method `Application.handleIdSiteCallback()` for reading the JWT response from the ID site callback and building an `AuthenticationResult`

* New property `idSiteResponse` on `AuthenticationResult` for storing the decoded JWT response value - this is where you can get your `state` property from if you specified it.

* Implement a default Nonce Store by using a region in the data store cache

* New option `nonceStore` on the Client constructor, accepts an interface object for interacting with a custom Nonce Store
Thanks for the source link.

I think this is an artifact of how Java works: more specific error messages are available, but can be 'nested' inside generic ones from stack traces higher up in the trace.  With JS, I don't think that's the norm.  If so, then the message that an SDK user sees should be simple enough to understand.

We don't *have* to change this though - if you think users will understand what's going on, I'm fine w/ the way it is.  Thoughts?