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
Update changelog.
Overload to GraphFactory.open with a Map
Throw a nice exception if the elementClass argument is null for working with keyindices. #404
Updated changelog.