Update the CountO1Time scheme to be ElementCount that calculates the count regardless of the cost; function countO1Time then becomes a SFINAE on HasCountO1Time. Added unit test for elementCount on non-counted non-random-access iterator based range.
Added function halveRange and corresponding class and unit tests.