SPARK-2761 refactor #maybeSpill into Spillable

Moved `#maybeSpill` in ExternalSorter and EAOM into `Spillable`.
It's a little confusing for a `maybeSpill` to call a different `maybeSpill`, from the base class to the parent class. We should rename one of them (not too sure which one) to `maybeSpillCollection` or something.