add GAReferenceSequenceSet

This is to strengthen reference sequence issues.  Important semantic changes are:
  - require some way to obtain the sequence, either by URI, accession or literal sequence.  Though not required by BAM this is needed by CRAM and good practice in an internet API world.
  - share reference genomes (reference sequence sets) by id across all readgroups using them, and require readgroupSets to map to the same referenceSequenceSet for all readgroups within them. 

I introduce a GAReferenceSequenceSet record.  Something like GRCh38 will be a referenceSequenceSet.
Now a readgroup refers to the referenceSequenceSet it aligns to by id, not the array of sequences.
We want ids because we will use the same referenceSequenceSet across very many samples.
We require that all readgroups in a readgroupSet align to the same referenceSequenceSet, so that combining data across them makes sense.
I also made much clearer in comments the semantics of where literal sequences are obtained from, and of derived sequences and sequence sets:
 - for derived sequences I introduced the sourceDivergence, and I described derived sequenceSets as ones that either contain (some) derived sequences or contain additional sequences beyond those in the accession from which they are derived.
clarification in comments
minor updates

make referenceSequenceSet optional in ReadGroup for if there are no alignments
allow ncbi_taxon_id in ReferenceSequence to override the value in ReferenceSequenceSet
other comment changes
add md5checksum to GAReferenceSequence
make GAReferenceSequence::sequence required

We want the API to get the sequence, not the user.
And this simplifies a lot of the logic in the API.
The one thing I am not sure about is whether this means that in implementation when you get the ReferenceSequenceSet then you get all the literal reference sequences at the same time.  This would be ~3Gb for a human genome, so heavy.  More sophisticated implementations would get sequences only on demand, and cache.  I don't understand enough about the methods to know whether that is possible
with this schema.

Also rename uri to sourceURI.
add search for referenceSequence and referenceSequenceSet

Also change reads/search to specify the referenceSequence properly.
At the same time change the reads/search feature names to camelCase, and endPosition to be exclusive as with other interval endpoints.
NB this relies on introducing an id for referenceSequence, which I am about to commit next.
add ReferenceSequence::id and associated changes

ReferenceSequence now has an id
move names to ReferenceSequenceSet::names[], and copy lengths to ReferenceSequenceSet::lengths[]
minor change to comment

clarify comment on search by accession in referenceSequenceSet/search
Merge branch 'master' of https://github.com/richarddurbin/schemas into richarddurbin-master

Conflicts:
	src/main/resources/avro/readmethods.avdl
	src/main/resources/avro/reads.avdl
Merge branch 'richarddurbin-master'