Moved DeduceRangeType for array down so that it can just call back to DeduceRangeType with the start and end of the array.
Correct CountO1Time SFINAE and add unit tests for the functions.
Update StepOverRange to be a wrapper to either StepOverRangeCheckingIsEmpty or StepOverCounted depending on the counted-ness of the ranges passed in.
Relocate test function algo_h::teststep into namespace algo_range_h .
Added a HasContainerTraits metafunction, and machinery required to make it work. Tests for various nested types before declaring a class an iterator. Added a couple of rough tests. Note can be inhibited with InhibitHasContainerTraits .
Added BasicBoundedCountedRange, used this when deducing containers.
A couple of namespace changes, and updating calls to use the proper ALGO_XXX_CALL:: macro.