Bugfixes and refactoring

Use chrome's built in colorpicker for choosing colors on options page. - The input type 'color' has been available since Chrome 20 so why not use it?

Identify pages by host rather than by 'topLevelDomain' - The old "Top Level Domain" code was actually getting the top and second level domain. This can be not enough (in case of `example.co.jp`) or too much (in case of `localhost`) and it also didn't account for port which might be important. So now, active sites are identified by `host` which means their full domain name and port if different from :80. 

Use appropriate tab events - we may need to take action on any of: `onCreated`, `onActivated`, or `onUpdated`. `onSelectionChanged` is deprecated.

Various other fixes and refactoring - for example, the logic for when to push details to queuedRequests needs to be based on the url (host actually) of the tab, not just the tab id. 

These fixes should solve the forgetfulness issues that have been discussed in #44 and #39