I'll have different variations of extension architecture in separate branches.
v0.1: three variations of executing simple code from a persistant background script that modifies the DOM
v0.2: simple code running from within content script
v0.3: starting a script in a file with executeScript (not a content script)
v0.4: attempted to use the "tabs" API within a content script, which is not possible
v0.5: sending a message from an anonymous script
v0.6: attemting to execute script from anonymous script
v0.7: loading libraries as content scripts with executeScript
v0.8: experimenting with iframes (not working)