Improve Graph::createVertices() to return vertices and accept array of vertex IDs

This PR improves `Graph::createVertices()` by returning created vertices instead of chainable `Graph` instance (slight BC break!).

Also, the method now also accepts an array of vertex IDs to be created and ensures it's an atomic operation that only succeeds if all vertices can be created (check for duplicates and invalid IDs).

Along with some unit tests.