Implement APIs and process for managing site data

See #3, #4 
`key_mapping` could use a comment explaining how it is used, but it's hard to come up with something that is actually clarifying, other than sample code.  Maybe something like: "`key_mapping` should be overridden by a subclass to be a dictionary mapping foreign key field names to 'key map names'.  (E.g. 'location_id' : 'locations').  The key map name occurs as a dict key in the key_maps parameter of `__init__`.  The values in the key_maps parameter are the actual staging-id-to-warehouse-id dictionaries."  Blech.