Initial move of IndirectResolution algorithm

Work in progress, not currently working fully

Refs #10064
Refs #9711. Refactored PoldiMerge to use MergeRuns

Consequently, WorkspaceGroups can be handled now as well.
Resolution working, needs replaced with new C2E algorithm

Refs #10064
Refs #9711. Instruments are compared as well now.
Better use of property types

Refs #10064
Add a SampleShapeValidator type

It is used for checking that a workspace has a valid sample shape.
Refs #10169
Add unit & performance test for V3D::rotate.

Refs #10169
Fix doxygen warnings in SampleShapeValidator

Refs #10169
Improve performance of V3D::rotate.

Avoids instantiating two additional matrices for the calculation.
Refs #10169
Checkpoint CalculateMSVesuvio

Refs #10169
Add code for calculation of first scattering.

Refs #10169
Check point CalculateMSVesuvio

Refs #10169
Finished off algorithm. Needs further testing.

Refs #10169
Refs #10194 create files
Futher debugging on Vesuvio MS calculation.

We now get something that looks like a distribution but it doesn't
match the VMS output yet.
Refs #10169
Add error in tof to Vesuvio resolution parameters

Refs #10169
Fix a few more bugs in calculation.

1. Use resolution parameter for generating initial tof
2. Use correct coordinate system for generating random scatter direction.
Refs #10169
General refactoring, corrected save option

Refs #10064
Renamed rebin parameter, addded usage example

Refs #10064
Removed Res option form algorithm

Refs #10064