Stringify all objects (not just uris) and pass original key to loader.

- `id` can now be any object.
- The JSON.stringified `id` will be used as the key in the LRU cache.
- The original (unstringified) `id` will be passed into the loader function.

This is breaking change for any API user who has a loader function expecting a formatted URL be passed to their loader function.