Add multiple executors

Refactoring / clean up
Adding executors instead of framework messages
Should use clusterState.getNamenodes() instead, so that duplicate RUNNING updates from the same namenode/slave don't cause you to believe you have 2 namenodes running, if all status updates have come from the same host.