add enumerating_source
add error_extracting_source
add custom iterator_range as a noexcept-supporting replacement for boost::iterator_range
use the new Sources in the HTTP example