Refactoring read groups to increase the amount of data stored.

With the current read group dictionary data structure, we only log the read group names. As a consequence of this, we don't write the full record group information to the SAM file header when converting back to SAM/BAM (we use the record group dictionary to aggregate the record group data). This leads to compatibility issues with downstream tools that expect this data to be present.