Bs mapping validations

Add validations when creating a mapping or saving a document to ensure that mappings and fields on a document stay in sync.

There will need to be cleanup on Sieve before we can start using this version.
I think we should extract these into their own Exception file.