Move existing unit test into spec/units

To make room for acceptance tests in spec/features.
Add failing acceptance tests for redirected and archived URLs
Implement Site.create
Implement Site#create_mapping
Introduce Mapping class
Implement Mapping.create
Implement Mapping constructor
Implement Site#create_host
Introduce Host class
Implement Host.create
Implement Host constructor
Implement Host.find_by
Add site attribute to hosts
Pass site to Host constructor in Site#create_host
Accumulate a site's mappings as they're created
Extract RecordCollection from Host

This'll let us reuse the #find_by code to implement site.mappings.find_by.
Implement RecordCollection#size and #include?
Use a RecordCollection for Site#mappings
Use named getters instead of #[]
Add missing requires