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

As requested, the commit in this Pull Request contains the fix and a testcase for issue #112. 

Commit message:
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.