Refactor serialization of SessionItem (less generic, more explicit)
Serialization means writing and reading of BornAgain project files.
The generic approach makes it very difficult to implement backward compatibility. If e.g. a property name was misspelled ("heigt"), this can't be corrected. Therefore a serialization should be implemented where each data element is expicitly stored/loaded and can be corrected/enhanced/removed/added more easily.
Also the current file versioning is quite limited (only good for whole file OK/NOK, it can't be used for compatibility).
After first discussions, we decided to take a closer look at the boost serialization library.
Another discussion outcome was to go for a single project file solution (either completely created by boost or as a (zip?) archive) instead of a multi-file project stored in a folder structure. This seems more convenient for the users and reduces errors when moving or exchanging files.
Note:
Regarding the design of how to serialize, read also the discussion in !573 (merged): !573 (comment 170494)
This has to be done for
- 
Material items  - 
Sample items  - 
Instrument items  - 
Job items  - 
Real data items