Implement a basic mapper

This should now be ready to merge. For details, see inline docs and the brief integration test at: https://github.com/dpla/KriKri/pull/23/files#diff-c139162c30d9695d1f73d5b6881e4348R4 

I'll compile a longer commit message on squash.
Please expand! I've been making a point of adding through yardocs, especially for this core stuff that we'll have to be writing on top of for a long time.

Call me out if/where it is inadequate.