Better URL parsing through science

Use [Addressable](https://github.com/sporkmonger/addressable) rather than URI.parse to parse URLs.

This provides better support for URL encoded, non-ut8, and other edge case URLs.

Fixes https://github.com/gjtorikian/html-proofer/issues/110.