Initial cut of a spreading scheduler.
Add a generic scheduler.
Refactor the code to make it more readable.
Merge pull request #1420 from brendandburns/scheduler

Initial cut of a spreading and generic scheduler.
Fix type cast problems now that watch can pass errors
Be more robust in how we pass flags.

Using the '=' form of a flag makes things better if we have an empty list of machines.
Merge pull request #1447 from lavalamp/fix

Fix type cast problems now that watch can pass errors
Merge pull request #1448 from jbeda/robustify-flags

Be more robust in how we pass flags.