Add test to enforce consistency around removeVertex()

Throw IllegalStateException if the same vertex is removed more than once or the vertex does not exist in the graph.
Merge remote-tracking branch 'origin/master' into issue-418
Tests passing in blueprints for #418