[mapistore-python]: implement ROPSaveChangesAttachment
[mapistore-python][sample.py]: Implement RopGetValidAttachments in OpenChange
[sample.py]: Fix typos
[pymapistore]: Modify "attachments" iterator to fit the attachment ID behaviour
[pymapistore]: HACK Implement open and close messages using their MID (for sample.py testing)
[mapistore-python][sample-backend]: Implement move_copy_messages
[mapistore-python][sample-backend]: implement delete_message (hard deletion)
[pymapistore]: correct input type for py_MAPIStoreFolder_create_folder
[mapistore-python][sample-backend]: Implement move and copy folder
[mapistore-python][sample.py]: Use list and dictionary operations instead of for loops
[mapistore-python][sample.py]: Correct for loops (esp. naming)
[mapistore-python][sample-py]: Remove unnecessary "return"
[mapistore-python][sample.py]: Fix recursive copy check
[mapistore-python][sample.py]: Use list comprehensions in get_valid_attachments
[mapistore-python][sample.py: Enforce property usage instead of FID/MID attributes
[pymapistore]: Correct MID assignation in folder.c
[mapistore-python][sample-backend]: Add sanity checks in mapistore_python.c
[mapistore-python][sample.py]: Add breaks (only one message/attachment with the same ID can exist in the "message"/"attachment" list)
[mapistore-python][sample.py]: Return MAPIStore errors instead of magic values

- Not necessarily a permanent solution - the MAPIStore Python bindings might stop being exposed in the backend at some point
[mapistore-python]: implement ROPSaveChangesAttachment