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 all `bad-slots` for topologies that needs re-scheduling.

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.