Fix missing cancel() bug
Store verbose level in chrome.storage.local
Use content script to detect activation states

Using standard's window.focus and window.blur is better than using
chrome.windows.onFocusChanged and chrome.tabs.onActivated.  The problem
of the chrome.* API is that it is not triggered when Chrome as an
application loses focus (the user switches to another application).
This causes time measurement very imprecise.