Big commit.  Move around utility functions and add edge case logic that Piwik
had but that we were missing.  Covers lots of edge cases not previously
covered like 'https://www.google.com/' being treated as a SERP with no keyword
instead of a non SERP.
Update unittests for extract and add tests for utility functions.