Faithfully reproduce task to executor mapping that Storm uses.

Note that we carefully don't assign regions to executors that we don't
need.