Compare collections by name

Refactored a lot of the guts to get this to work.
Luckily, I have unit tests to make sure I didn't break
any existing public APIs. I would say this does a more
thourough comparison now.

Also added a `#get` method, and layed the groundwork for
a default comparator.
Cleanup the test directory and rename it to spec