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.