More improvements to content script injection.

Don't continue injecting content scripts if the script injection process has been restarted (e.g. if scripts 1-3 of 5 have been injected, then a sub-frame completes loading so the whole process has to start again: don't inject script 4 which may depend on scripts 1-3).
ok cool. you could listen for tab removal and clear all tab-related state when that happens? though you might as well do separately since it's not needed for this patch.

btw I assume you already have logic in pages to ignore subsequent injections?