Web Replay: add support to encode/decode the unsigned long ctype.
PluginStreamLoader should have an identifier before registering.

It seems that before, a plugin loader was registered with the
DocumentLoader unconditionally before it was initalized.
Since ResourceLoader::init() can fail, there's a chance that
some plugin loaders were being uselessly registered.
Move createUniqueIdentifier() from ProgressTracker to NetworkProxy.
Change DocumentLoader's set of resource loaders to a map.

It is indexed based on the loader identifier, which is unique.
This will allow us to dig out a loader and call it on replay.
Web Replay: unify deterministic loaderId and resource load identifiers.

The network proxy used to number resource handles based on its own
counter which was memoized during replay. This patch gets rid of this
special-purpose counter and uses resource load identifiers instead. It
also makes createUniqueIdentifier() deterministic.
WIP: work on ResourceCallback and removing uses of ResourceHandle on replay.