Fixed race condition with two calls to port.once

The content script checks twice for which trackers are blocked, since the extension might not yet know about all blocked trackers on the first check (but we want the first check to happen as quickly as possible). These two checks sometimes interleave and cause an error (#162). So don't do the second check until the first has completed.
If I understand correctly, the setTimeouts are necessary to "force" the button-replacing to happen only when all of the resources on the page have been loaded and/or added to the settingsMap block-lists. The tab API docs are unclear on whether the attached content script fires when the DOM content is loaded or when all page resources are loaded; if it's the former, perhaps setting `initialize` as a callback for `window.onload` resolves the race condition.

If not, it seems that a better way to do this is to call `createReplacementButtonImage` whenever "block" or "userblock" are emitted by the main extension code (rather than try to wait until everything has been collected in `settingsMap`).