Add failing spec for invalid hostname bug
Fix unhandled exceptions when resolution fails
Refactor Socket::Range

There was really no reason for it to inherit from Array. Also adds a few
more specs and gets coverage up to a more respectable percentage.
Remove the ipv6 attr on Range

Makes more sense in the option hash.
Fix unreliable spec

Sometimes "localhost" resolves to more than one address
Simplify the logic deciding when we're finished
Remove pointless checks and add some docs
Land #2843, RangeWalker resolution failure bug fix