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
I had experimented with well-named classes for auth response types during the API Auth work, but we decided to remove them and generically use `AuthenticationResult` :)

An object literal is entirely possible, but I like providing the `getAccount()` method on the result, in which case it makes sense to create an `AuthenticationResult` instance.

RE the "is it newly registered" concern: I'm attaching the token response to the `AuthenticationResult` as `idSiteResponse`, that token has the `isNewSub` value and I'm expecting that the user will use this value.  This *does* leak JWT details and may not be the best choice.