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.
To be consistent with the rest of ADAM stylistically, I'd undo this change (as well as the change on L35) and do:

```
import org.bdgenomics.adam.models.ReferenceRegionContext._
```