Don't use a blob URL cache

- it's not needed, since we're not caching the blob URLs anymore (the import
  documents are recreated each time)
Remove unneeded BlobUrlCache
Support space- or comma-delimited keyword lists
Fcommand context defaults to page

- and can only otherwise be 'bg'.  This isn't enforced anywhere, since
  running in page by default limits the blast radius of bad JS to whatever
  the page can already do
Update TODO

- new approach to execute Fcommands embedded directly in the import document
- bg code is placed in a <template> and run only by the bg page, never
  having gone through the content script
- simplified content script that only sets up the import and cleans up after
  it has loaded (which is after the Fcommand has run)
Execute Fcommand code during import

- Fcommand code is now run during load of the import document
- it is invoked via a call to the Factotum API that was injected into the
  page by the content script
- it no longer concerns itself about the background code, it only calls a
  success/failure function.  The object passed to the success function will
  be posted to the content script (TODO: and passed back to the bg page,
  which will pass it to the Fcommand's bg code).
- the content script sets and cleans up the import
- the API runs the Fcommand code and handles errors such that data can be
  passed back to the bg page to indicate success/failure
Update TODO

- about message passing back to the content script
Update TODO

- figuring out how to pass the Fcommand arguments to the Fcommand
Update TODO

- remove notes about stuff that is now implemented
Update TODO

- need to prevent simultaneous same-Fcommand invocation
Support arg passing into import Fcommand doc

- use a data attribute that contains the stringified command line
  minimist options and some queryselectoring to pull out the data
  when the Fcommand is run
- note that this implementation relies on the document import URL
  being unique, even for the same Fcommand document executed on
  future invocations
Remove obsolete comment
Include internal opts when posting to bg

- otherwise, it will have no idea that it's supposed to enable debugging
  on this Fcommand invocation's bg code
Include semver in background page

- needed for Fcommand metadata validation
Remove unneeded window. prefix
Ensure guid is present in message handler

- since it will be called for every postMessage, regardless of who sends it
Clean up doc
Add Factotum._getDataAttribute

- since two data attributes need retrieval, it was better to put the
  same code in a function and parameterize on the attribute name
Document Fcommand function parameters
Judiciously accept posted messages

- only from out window, that are non-null objects, with guid