Cram code base

Just rebased the branch from master. Briefly:
- adds new htsjdk.samtools.cram package that contains CRAM backend like codecs, structures and thins
- adds CRAM type in SamReader
- CRAMFileReader and writer implementations
- changed visibility of TagValueAndUnsignedArrayFlag, used in the cram package
Perhaps benchmark logging should be going to DEBUG. Also if we an avoid doing the calculations plus all of the System.nanoTime calls it should speed things up a bit. Or it the case that we always want to be able to see these container read metrics?