Workers now report available memory on connect. Coordinator checks before assigning files in a new epoch. Before this it was pure round-robin -- distribute files evenly regardless of what the machines can actually hold. Worked fine until I added a worker with less RAM than the others and it OOM'd on the first epoch. The fix is obvious in retrospect. Workers know how much memory they have. They should say so. Coordinator should listen.
