Building up the range library.

Added a number of new tests for various range concepts.

Ported the bounded_range adaptor from the C++11 version
of Origin.
Work on range algorithms.

Fixed a bug in the spec of Range that would not allow
arrays to be considered ranges despite having begin and
end operations. Need to declare the local parameter as
a reference, not an rvalue.