Two patches to scheduler

There are two patches here:

1. There seems to be an erroneous structure in `default-schedule`: invoking to `schedule-topologies-evenly` should only be done **after** freeing `bad-slots`.

2. `SchedulerAssignmentImpl` currently uses `HashMap`, which **does not** preserve entries order.  This can cause unnecessary and unexpected re-scheduling when nimbus converts `executor->node+port` between its internal Clojure maps and `SchedulerAssignmentImpl`'s Java maps back and forth.