Enhance `contains` and `overlaps`

* **BREAKING** `overlaps` now checks to see if the ranges overlap at all
  and not completely
* `contains` now accepts DateRange objects, provides the functionality
  that `overlaps` used to