Generalize the fit scheduler.

Extract the "fit predicate" from random fit to make it extensible/plugable
"must return" or "must return true" :)