low-level refactoring. changed name of encrypt/decrypt documents to better reflect generic usage as pre/post initializers. object IDs go in as nil without validation if they are invalid. structs get recursively prepped with the old EncryptDocument method (now PrepDocumentForSave)