Detection improvements: Hidden by overlap: Consider rounded border.

Problem:  If element has a topleft rounded border, the upper left point
          lies outside the element (region outside the border doesn't
          really belong to the element). Consequently, topmost element
          detected there is not the element, but the one behind it. This
          makes the visibility checking code incorrectly think this
          element is hidden by overlap.
Solution: Add offset to get to the point nearest to the upper left
          corner, but at or within the border.
Reorganize settings.

Setting were a bit bloated already.
This just reorganizes them, adding some groups and changing order of
some items.
Fix issue: Not working first time on new window.

Problem:  When opening a new window, or a new Safari instance with no
          previously open tabs, extension doesn't work. You have to
          reload or go to a different url for it to work. This seems to
          be caused by the activate event being fired while tab url is
          not yet set. Listening code in injected.js receives (and sets)
          and undefined url, which makes following code fail.
Solution: Directly access document.URL instead of having it set by tab
          activation listening.
          NOTE: This has a secondary effect on excludedUrls setting
          behaviour. Previously, an iframe having a forbidden url would
          be hinted anyway, if contained in a document with an allowed
          url. Now, everything coming from a forbidden url, will not be
          hinted, whether it's the main frame or a contained iframe. We
          think side-effect is in effect better that the previous
          behaviour, so we leave it there.