refs #10530. Start new algorithm.

Needed to expose a few more property types to get this started. All tested.
refs #10530. Refactor and extend tests.
refs #10530. More TDD around these features.

Particular focus on projection inputs. Also started adding binning information.
refs #10530. Add extents calculation.
refs #10530. Checking basis transformations.
refs #10530. Add more tests.

Also needed to expose columnnames properly via ITableWorskpace
refs #10530. Add NoPix option.
refs #10530. Add Axes check.
refs #10530. More checks and tests.
refs #10530. Use binning boundaries as extents.

Use binning boundaries as extents if they define inner limit. Otherwise the original dimension boundaries are used as extents. In either case, the extents need to be transformed
into the new basis.
refs #10530. Fix extents calculation.

The tests are right, but the implementation is wrong. We should calculate all extents in the new basis first, then figure out the most conservative
of those to use for the actual extents used in BinMD/SliceMD.
refs #10530. Update according to Andrei's binning observations.
refs #10530. Extents from binning only. Andrei's input.
refs #10530. Truncate extents. Andrei's suggestion.
refs #10530. Use Enums.
refs #10530. Calculate new extents before calculating bins.
refs #10530. Add w_matrix to outgoing workspace.
refs #10530. Apply scaling.

This wan't right first time round.
Merge branch 'feature/10530_cut_md' into develop