Invalid hostnames allowed since v0.2.1

In v0.2.1 the validation was switched to using Addressable::URI instead of the stdlib URI module. This lets a lot of invalid hostnames pass validation the were caught before the change. This pull request fixes a few testcases to conform to the standards definition, adds another testcase for a common typo and switches back to using the URI module to make the failing testcases green again.

Feel free to ignore commit 875551e, it just made handling the dependencies during development easier.