add/update BAM encoding/decoding factory classes
add comments
add range support in BAM input factory classes and add test in testbamtofastq