ReadGroup class along with some support in SamHeader.

ReadGroup is a simple class for storing a read group (@RG) record from a SAM header.  This commit also adds a method in SamHeader that parses the header text and gets a vector of ReadGroups.
just out of curiosity, did you try the simpler for each loop here?

```c++
for (const auto& token : tokens) {
  ...
}
``` 

if that didn't work, at least do the tokens.end() check once before the for loop instead of at every iteration.