Web Replay: remove useless dispatchAsyncEvent indirection.

Closes #291.

Since we address nondeterminism at the timer level where possible, there are now
no cases where EventHandler::dispatchAsyncEvent is actually used to control
nondeterminism. So, we remove DispatchAsyncEvent and DispatchEventBase.

Helper methods for serializing and deserializing document and frame indexes
were moved to EventLoopInput.