rework view::take and view::counted, add RANGES_FOR macro, add range_interface, use it to give views greater interface consistency. TODO rework view::slice
rework view::slice
range adaptors get public base() member to access adapted range, istream_range gets cached() member function, fixes #57
a reference-wrapped Iterable is a Range
add view::ints as an alternate name for view::iota, more correct handling of integer ranges in iota view, test for view::iota; fixes #22
attempt to fix view::iota test
really fix view::iota (i hope)
add view::drop
add view::drop_while and tests, fixes #18
conditional convertibility from range types to containers
test that std::set is not a Range
attempted portability workaround for libc++
initializer_list<T> is a container, not a range
mutable-only Ranges like view::for_each are also convertible to containers
view::filter is default constructible even when the filter function is not, fixes #60
break works with RANGE_FOR macro
All iterators into adapted ranges have a base() member for fetching the underlying iterator
range adaptor sentinels also get a base() member function
libstdc++ still lacks C++11 type traits
std::reference_wrapper of an Iterable is an Iterable, is made a Range by converting to a ranges::reference_wrapper