make the worker selection strategy in remotetaskrunner extendable

Similar issue with the ZkWorker objects themselves; maybe it'd be cool to have an ImmutableZkWorker like the coordinator uses for druid servers to get around that.