Add better assertion reporting if nodes are not present in the ClusterState
Use busy sleeps in NoMasterNodeTests

The busy sleep is less prone to slow tests / machines while still
fails if the actual condition isn't met.
Use domain specific assertions for shard failures across tests