Better vomnibar favicons (particularly: favicons for domains)

Fixes #1208; or, at least, it much approves on the situation.  And it does handle domains.

This fetches favicons from Google.  Helpfully, Google serves up a nice little "world" icon for anything it doesn't know what else to do with.  So we seem to get at least *an* icon for pretty much every site.

I don't think this is the final word on the matter.
If you're worried about garbage collection because for some reason neither `xhr.onerror` nor `xhr.onload` might be called, I would recommend:
* using ports (via `chrome.runtime.connect`):
  * ports have an `onDisconnect` listener; we can use this to do any cleanup we need in the frontend.
  * even without our intervention, the garbage collector will cause `onDisconnect` to be called for the port. (I can expand on this if it would help.)
  * we don't have to have our own workaround.
* listening on `xhr.onreadystatechange` instead of seperately on `xhr.onerror` and `xhr.onload`, so we're less likely to have missed an event (and miss sending a response).
* setting the timeout on `xhr` instead, with `xhr.timeout = 121000`, and possibly binding the `xhr.ontimeout` handler, if having a response within 2 minutes is still important.