do not duplicate labels in cypher query if equal

In models that have a Relationship* to themselves the previous code
added the same label twice in the MATCH clause, for example when
checking the length of a connection.

With this commit the QueryBuilder checks if the labels in the query are
equal and - if yes - leaves out the left hand side label.
Merge pull request #113 from gegenschall/feature_neo4j_2_0

Issue #112: do not duplicate labels in cypher query if equal