range adaptors get public base() member to access adapted range, istream_range gets cached() member function, fixes #57