Snapshot commit

There's lots of useful code in here I might need later, but for
now I'm going with a simpler implementation
Simplify implementation

Doesn't do anything fancy. Any messages published are sent to
the background page and all tabs. If a message is only important
for a single tab, it's the responsibility of that tab to filter it.