Sting sniffing fixes for URLs

In working with Howard on #1553, I ran across a bug with this search URL:

    http://en.wikipedia.org/wiki/Special:Search?search=***

while adding a port would make it work as expected

    http://en.wikipedia.org:80/wiki/Special:Search?search=***

You can test this by running ⌘⎋ on both of those and checking the default action.

So, I added some unit tests for various colon placement combinations, then changed the string sniffing code so the tests would pass.

In a nutshell, all I did was split on `/` first before splitting on `:`. That way, we only worry about colons in the `hostname:port` part of the URL. All other colons are ignored.