Adding RegionRDDFunctions

This PR contains two commits fixing #511 and #512.  

First, it updates ReferenceRegion so that the class doesn't extend Ordered -- rather, we providing _an_ Ordering which can be used in the same contexts (and which we can replace by other orderings, if we want to order the regions in a different way).  

Second, it provides three new RDD wrapper (*Functions) classes, around RDDs of 
1. ReferenceRegions
2. Reference-mappable values
3. Pairs whose first element is a ReferenceRegion

In each case, the wrapper class provides a standard set of operations (join, filter, groupBy, windowCounts) which operate on sets of geometric operations (and are implemented under the hood, here, with RegionJoin.partitionAndJoin).  

These PRs are necessary pre-cursors to the Mutect work that's going on over in the avocado repository.
You can extend a `case class` with a `class`, but you cannot have a `case class` extend a `case class`.