another test fix
Instead of using a Scanner to read lines in head, look for the offset and copy

This fixes two bugs:
 - trailing CRs were being stripped from the output, because the ScanLines
   implementation does that
 - long files without newlines weren't being printed at all
add tests for head and tail