Moved all source code to src/ folder.
Added grunt support to concat and minify JS sources.
Update clustering when tabs are created, updated or removed.
Added check to verify if "Tabs clustering" tab is already open, if so, prevent opening more.
+ Added logging to the critical execution path.
- Replaced call to updateClustering for the chrome.tabs.onUpdadated event since it is called while loading and when complete. The new function will only updateClustering if the update is completed. At the same time, it is not necessary to listen to chrome.tabs.onCreated as chrome.tabs.onUpdated will be part of the events flow received (thus we'd update unnecessarily).
Do not updateClustering if the "Tabs clustering" tab is updated/reloaded.
If we do not do this, two calls to updateClustering will be made: one because the table template is ready to be used, one because the page has finished updating (this one is removed with this change).
- Refactored various methods
+ Added order_by to the list of saved/restored options
+ Added sorting by title/domain alphabetically (asc) and by cluster size (desc)
Added license for project and icons.