Add support for neo4j indexes and unique constraints.

Labeled and legacy indexes are support.
To hit a labeled index the following gremlin pattern is used,

    g.V().<Vertex>has(Element.LABEL, "Person").<Vertex>has("name", "marko")