Refs #10282. Add IScatterer
Refs #10282. Checkpointing work.
Refs #10282. Expanding interface of IScatterer
Refs #10282. Removed rigid scatterer, added tests
Refs #10282. Added occupancy to calculation, wrote test
Refs #10282. Added static create method
Refs #10282. Completed ScattererCollection and tests
Refs #10282. Renamed ScattererCollection
Refs #10282. Added documentation.
Refs #10282. Checkpointing work
Refs #10282. Added conversion function between unit cell and string

For using UnitCell in PropertyWithValue, it would be necessary to change the stream operator of UnitCell,
because that is only used for printing at the moment and the precision is limited to 1e-3, which is not enough
for cases like powder diffraction (for example at POLDI, where lattice parameters are determined with precision
better than 1e-4).

Instead of modifying the interface of UnitCell I chose to add explicit string conversion functions. It should be
straightforward to change later on.
Refs #10282. Changed IScatterer interface, added factory

IScatterer now inherits from PropertyManager. There's now also a factory for consistent creation of scatterers.
Refs #10282. Removing unit test

This was only meant to be added temporarily for finding a problem in a system test.
Refs #10282. Renamed classes to fit diagram
Refs #10282. Changed BraggScatterer interface

Changed the interface of BraggScatterer to be independent of UnitCell, SpaceGroup and V3D. These are handled in BraggScattererInCrystalStructure now.
Merge remote-tracking branch 'origin/feature/10282_create_scattering_function'