Improve explicitness of the session history spec
This is mostly an editorial change, which introduces explicit
links for the various items of a session history entry. However, it also
includes some bugfixes and substantial clarifications. Notable ones:
* Removes the mention of "form data" as being part of a session history
entry. This was never referenced elsewhere in the spec. It may have
something to do with form resubmission upon history traversal (which
seems to be unspecified), or maybe it was subsumed into "persisted
user state". For now it's best removed.
* Removes a paragraph saying that entries with discarded documents
should act as if the documents were not discarded. This seems totally
wrong; re-creation of documents is handled explicitly in the spec.
* Fixes the "URL and history update steps" to not create document-less
session history entries.
* Symmetrizes and more tightly couples scroll position
saving/restoration and saving/restoration of other,
implementation-defined, persisted user state.
* Rewords all the discussion of contiguous, document-sharing session
history entries for improved clarity.
* Updates all history-related IDL constructs to modern style, including
adding a "state" value for history.state to return, and creating
"shared history push/replace state steps" for
history.replaceState() to call into.
* Reduces some of the implicit variable-passing, notably for the
"navigate to a fragment" algorithm.
This helps set the stage for #5767, but does not yet make any of the
changes proposed there.