SPARK-2761 refactor #maybeSpill into Spillable

Moved `#maybeSpill` in ExternalSorter and EAOM into `Spillable`.
is this the only method subclasses need to implement? if yes, maybe move this to the beginning of the class so it is obvious ...