Add GAReadgroupSet object and search method

We had a good discussion on Wednesday's call about loose ends around working with multiple readgroups, now that step 1 of #32 is done. Eugene described NCBI's model of "runs" (the things that get SRR prefixes in SRA), with the key points being that runs are packages defined by the submitter, are the unit of indexing, contain one or more readgroups, and can be later filtered by readgroup. That concept is baked deeply into the NCBI design -- Eugene said that any change to index at a lower-level (e.g. by readgroup) would be a big deal that would force rewriting their archive.

There are a lot of things I like about that approach, so I offered to think about how something similar would work in our `GAReadGroup` world. This pull request is what I came up with. I like the way it came out -- there's one simple new `GARun` object, and one simple new `/runs/search` method. I think it would satisfy all the use cases I know about, and would be friendly for both backend repository and frontend client implementers. *(The only thing I don't like is the name, but let's agree on semantics first, and then we can pick a friendly name at the end.)(EDIT: updated name to GAReadgroupSet.)* 

PTAL.