Bookmark hash URLs can now store variables

The altered variable state of the story is now stored in passage
bookmark links, and can thus be restored. This uses a combination of
JSON and base64 to store both acyclic objects and primitive values in
hash URLs - and without revealing their identity or contents to the
casual player.

A little more must be done to get this working for link-set variables.