Comply with JSHint.
Modify update behavior and refactor.

- No longer set up the messaging listeners;
- Save user preferences directly to storage instead of asking the
  background page to do that;
- Use chrome.storage instead of localStorage;
- Use chrome.runtime instead of chrome.extension;
- Drop jslint devel option;
- Trigger reflows instead of setting up timers to do tricky animation;
- Simplify and break up some complex functions into simpler ones;
- Better comments and jshint compliance.
Modify the preferences updates and refactor.

- No longer query or notify options tabs on preferences change (rely on
  their preferences update observing capabilities instead);
- Use chrome.storage instead of localStorage;
- Use chrome.runtime instead of chrome.extension;
- Drop the jslint devel option;
- Better comments and jshint compliance.
Refactor.

- Use document.querySelector to fetch head element;
- Use chrome.runtime instead of chrome.extension;
- Use chrome.runtime.id to obtain the extension id.
Add storage permissions and bump to 0.6.2.
Experimental changes in message exchange.