IndexedDB preload caching

Preload package caching in indexeddb. Pass --use-preload-cache to the file packager to generate indexeddb code. Default is to always do XHR, as before.

If preload caching is enabled, the preloader will do the following for each package:
* open indexeddb (named EM_PRELOAD_CACHE) and check for package metadata
    * if there's metadata, perform an XHR HEAD request to see if the cached version is current
* if there's no metadata, or the cached version is not the latest, perform another XHR to get the latest package, store it in the cache, and update the metadata
* in either case, once the package is in memory it's unpacked into individual files as before