[ADAM-462] Coverage region calculation

This commit includes an new class, Coverage, which contains methods for
calculating coverage RDDs from RDDs of Region values.

Also included is a helper class, the PairingRDD class, which calculates
simple 'sliding' and 'pair' methods on sorted RDDs using the
"zipWithIndex trick."

(Joint work with Carl Yeksigian.)
Removed isAdjacent from Coverage

Also, updated the implementation of ReferenceRegion.isAdjacent.
And removed the ordering implementation for ReferenceRegion in Coverage.
Fixing comment editing.
Reworked sliding to use a flatMap/groupBy impl.

Frank had suggested moving from a sequence-of-joins to a
flatMap/groupBy-based implementation -- this commit makes that change,
and includes an extra test of the sliding method.
[ADAM-511] Provide Ordering for ReferenceRegion

As covered in issue #511, ReferenceRegion shouldn't extend Ordered, but
rather should be ordered by an Ordering value which can be imported
implicitly.  This will fix some "diverging implicit expansion" errors,
and bring us more in line with the Scala documentation on Ordered (which
is intended to be used in classes that have "a single, natural ordering"
-- a description that doesn't apply to ReferenceRegion).

This commit makes these changes, with the new Ordering provided
implicitly in ReferenceRegionContext.  It also includes corresponding
changes to the ReferenceRegionWithOrientation handling, and (finally)
includes changes to downstream classes that use(d) the Region.compareTo
method.

Also bundled in to this commit are two additional changes to
ReferenceRegion:
* Adding explanations to ReferenceRegion asserts.
* Adding 'extend' to ReferenceRegionWithOrientation, allowing a
  strand-specific extension of the region in a single direction.
[ADAM-512] Creating RegionRDDFunctions

Created RegionRDDFunctions, a class that wraps an RDD[ReferenceRegion]
and provides common join, filter, grouping, and counting methods on top
of that RDD.

Also included is a similar implementation for region-keyed RDDs (i.e.
RDD[(ReferenceRegion, T)] for some type T, and another class that wraps
oriented regions.
formatting
Adding a ReferenceMapping for VariantContext