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 #10283. Modified PointGroupFactory to accept space group symbols
Refs #10283. Adding a symbol to ReflectionCondition
Refs #10283. IScatterer calculates F^2
Refs #10283. Adapted CrystalStructure.
Refs #10283. Added more documentation.
Refs #10283. Added unit test for comparison

Using ReflectionCondition and structure factor calculation should give the same result for the same input.
Refs #10283. Moving calculation of F and d

Putting those calculations in their own methods makes it easier to add other calculations later.
Refs #10283. Modified CrystStructure to fit interface of IScatterer.