HTTP headers now only changed for non-whitelisted.

However, this means that the background script is reloading the
whitelist every second. Possibly inefficient? Also, whitelist
changes take a second to be reloaded into the background script
(and thus not applied to the HTTP headers for 1s after making the
change). I think it's a reasonable trade off.

Technical reasons are that the function for loading the whitelist
is asynchronous and if we directly call it in the action listener,
it won't complete until (likely) after the action listener has
already returned (at which point of time it's too late). Thus,
the whitelist is concurrently updated in the background, independent
from the action listener. This actually might be faster, anyway,
since many sites have a very large number of requests and it's not
ideal to be reloading the whitelist a thousand times per second.