Add lines_range

The lines_range range repeatedly calls std::getline to iterate through
the lines in the input stream.
Declare lines function inline to satisfy ODR
Make `lines` function object and add tests
Merge branch 'add-lines-range' into dev