bgzf: read/write from pervasive channels
bgzf: added convenience function input_string
line: to_string function
lines: of_string function + unit test

I found the function [Line.string_to_lines] too late :o). I keep this
function because it can be handy anyway, at least for unit tests.
bgzf: fixed incorrect detection of end of file
sam: expose header parsing for reuse in bam parsers