Starting a new SAM/BAM parser (not tied to Bio.SeqIO)

(Squashed commit from older branch)
SAM/BAM tags with new test file
Update comments regarding pysam 'bugs' (design choices)
Refactor to introduce common SamBamRead class
Started a SAM/BAM dictionary like Tag class
Implement SAM formating for SAM/BAM tags class __str__
Use new SAM/BAM tags object
Fix side effect of tag sorting; cast tag values
SAM/BAM embedded reference and annotation reads can be very long
Refactor generator functions into iterator classes to expose SAM/BAM header
Refactor to parser SAM header before iterating over reads
For BAM files infer minimal SAM style header if missing
Switch from MRNM, MPOS, ISIZE to RNEXT, PNEXT, TLEN (pysam will too)
Access to reference names and length following pysam API
SAM header parsing more like that in pysam
Implement FLAG 0x200 (QC fail) property
General FLAG bit value properties
Refector reference parsing from SAM header

Check BAM header consistent with SAM header @SQ lines
Adding SamWriter function
Option to parse uncompressed BAM files