Merge branch 'master' of https://github.com/ga4gh/ReadTaskTeam
Merge branch 'master' of https://github.com/ga4gh/ReadTaskTeam
Merge branch 'master' of https://github.com/ga4gh/schemas
Merge branch 'master' of https://github.com/ga4gh/schemas
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
initial stab at generated documentation for schema
Remove callSampleNames
Replace unused reads.avdl import with common.avdl.
Clean up callSampleId and Name fields

- make callSampleId on GACall optional
- remove callSampleIds and callSampleNames from GAVariantSet
- add a comment clarifying that if callSampleId is not on a GACall, the results from a /callsamples/search?variantSetIds=x will be returned in the same order as the calls on a variant in that set
(and so the ith result maps to the ith call)

This means we can support both sparse and dense representations without too many differences in the API.
Add comments for the 2 search methods

And puts the methods in a format the doc generation understands.
Moving CIGAR and positions to common.avdl.

All these are types that would be useful to have for the graph reference/variation stuff, so they would be helpful to have in common.avdl.

Also changing GAMappingPosition to just GAPosition, and commenting everything nicely for avrodoc.
Updating code format rules for documentation comments.

Making it clear that the star-every-line style of documentation comment makes avrodoc unhappy. Also putting in that we ought to keep to 80 characters per line, since I think we ought to keep to 80 characters per line.
Importing only common.avdl in referenceStructure.avdl now that the CIGAR types are there.