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
Per offline discussion:

* The ID site flow may be more than an auth attempt in the future, depending on what we implement in the ID Site

* We'll stop using `AuthenticationResult` class, in favor of an object literal which has an eagerly fetched `.account` property.  This makes sense from an ease-of-use perspective.