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
The cache region name might need to be configurable, but maybe we can hold off on this configurability.

However, I think the default name needs to be something like `idSiteNonces` instead of just `nonce`.  We could support multiple nonce regions, and each requires its own TTL/TTI settings, so we don't want to assume one region for all nonces.