refs #8951. Params should be mandatory for algorithm.

Since this algorithm could be used for workspaces in any units. Selecting a default step-size is bad, because for say TOF workspaces, 0.1 is a very very small step.
refs #8951. First-pass at implementing grouping functionality.

Not fully robust yet, but does seem to be stitching groups correctly.
refs #8951. Some refactoring and input type checking.

Tests for this have also been added.
refs #8951. Refactoring, more tests, and stricter input checking.

Check workspace groups to ensure they have the same number of workspaces. Group workspace processing is independent on whether we are scaling RHS or LHS.
refs #8951. Move internals to Child Algorithms.

This prevents orphaned workspaces from outliving the algorithm.
refs #8951. Refactor to always return the OutputWorkspace

rename the run function and always have it return the OutputWorkspace value. This saves lots of lines of code and makes it clearer.
Merge branch 'feature/8951_stitch_groups' into develop