page_saver_server is a loopback HTTP server that supports two POST
verbs (url_seen and clip_this) and a single GET (tags.) The
other tools use these.
page_clipper_user.js is a Greasemonkey app that posts the current
page, selection, url, and other metadata to the server, which stashes
it for later remembrance.
page_saver.user.js just runs on load and unload of every page, and
throws the state change at the server, which logs it.
restore_firefox takes those load/unload logs, collapses them into a
"currently open" url list, and restarts firefox with the new list of
pages.
page_clipper_user.js can't reliably encode a page (it
gets it after entity operations, so btoa() fails because
it's getting unicode.)