refs #10102. Sort by time at sample.
refs #10102. Consolidate calcuations.

The splitters vectors, and the new sorting require the same time at sample calculation. I've made the calculation into a free funciton, which is used by both. This should help at a very fundamental level, because the rebinning (new working on) functionality should match the filtering functionality.
refs #10102. Filtering implemented and tested.
refs #10102. Implement and test histogramming.

We need to be able to histogram according to time at sample.
refs #10102. Find min and max timeatsample in workspace.

Implemented and tested. This will allow us to find the X-range for our rebinning if the user does not supply all arguments to params.
refs #10102. RebinByTimeAtSample - works like RebinByPulseTime.

Added new algorithm. Shamelessly copy pasted a large portion of this (including the tests). Later refactoring step will be required to really reduce the duplication here, both for the tests and for the algorithms themselves.
refs #10102. Base class for algorithms common
refs #10102. Move more to the base class.
refs #10102. More reuse achieved.

Made the method to find the min and max values across all spectrum virtual and therefore polymorphic amongst each subtype of the base algorithm.
refs #10102. Refactor to base test class.

Templated base class taking algorithm as type argument. Shared test code is much neater now. Duplication is at an absolute minimal.
refs #10102. Add sample time filtering test.

Discount the PulseTime entirely in a unit test and use the L1, L2 distances as the control factors for the filtering.
refs #10102. Explicitly provide template argument.
refs #10102. Documentation.
refs #10102. Kill type conversion warning.
refs #10102. Amend documentation.
Merge branch 'feature/10102_rebin_by_t_at_sample' into develop