refs #7529 Generally fixes the issue with different Units

but more testing is necessary
refs #8794 Resolved conflicts while reverting ticket to master

Conflicts:
	Code/Mantid/Framework/MDAlgorithms/inc/MantidMDAlgorithms/ConvertToMDHelper2.h
	Code/Mantid/Framework/MDAlgorithms/src/ConvertToMD.cpp
	Code/Mantid/Framework/MDAlgorithms/src/ConvertToMDHelper2.cpp
refs #8794 mainly introducing monotonic ranges method in Units class

refs #7529 further enhancements (not finished)
refs #7529 Checkpoint, defining reduction limits
refs #7529 Finished limit for units and unit tests for these limits
refs #7529 removed unnecessary commits
refs #8794 fixing Unix differences.
refs #8794 Adding header missing on Unix
refs #8794 Adding another header not automatically included on RHEL
refs #8794 Trying to fix Round-off error on OSX
refs #8794 fixing linkage error caused by Unix-related changes
refs #8794 should fix GCC warning
refs #8794 should fix another GCC warning

removing methods which are seems not used anywhere and despised by GCC
refs #8794 Replaced vector by std::pair structure

I am unsure about it, as the functional equivalent of this function for ConvertToMD methods would return more then 2 values. And some functional modifications of this method may also return more then 2 values. But after some thinking decide to make the change for the time being and then see if expansion is necessary.
Merge remote-tracking branch 'origin/feature/8794_unitConversionLimits'