Abishopric/replicator

@mpuncel @petertseng this is the first set of commits that implement the replicator, which acts as a simple rollout mechanism for a single pod to multiple nodes. This is not ready to be merged.
I usually think of predicates as having boolean results. I think just from this name I might anticipate how one might use this type (a function that takes an allocation and returns an allocation maybe with some nodes removed?) though I might consider a different name. And in either case an explanatory comment would be great.