Add GremlinFunction and GremlinStep classes

- Remove Gremlin.appendMain()
Add IdxGremlinFunction class
Fix IdxGremlinFunction not properly inheriting from GremlinFunction
Add CollectionAccessor class. Remove Gremlin.appendIndex().
Add CollectionStep class. Remove Gremlin.appendCollection().
Add PipesStep class. Remove Gremlin.appendPipes().
Argument classes are no longer aware of client options
Move object classes and function classes to their own respective folders
Fix client creation test
Merge branch 'refactor-gremlin' into develop