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.
:baby: :100: