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
Add #path_hash getter to Mapping

This is only temporary, but makes find_by path_hash work.