SPARK-2761 refactor #maybeSpill into Spillable

Moved `#maybeSpill` in ExternalSorter and EAOM into `Spillable`.
let's just do private instead of private[this] for methods. for fields private[this] removes the accessor which is good, but for methods it doesn't really mean much