OGM-367 Use Neo4j labels

Previous pull request: https://github.com/hibernate/hibernate-ogm/pull/305
JIRA:  [OGM-367](https://hibernate.atlassian.net/browse/OGM-367),  [OGM-377](https://hibernate.atlassian.net/browse/OGM-377),  [OGM-406](https://hibernate.atlassian.net/browse/OGM-406), [OGM-468](https://hibernate.atlassian.net/browse/OGM-468), [OGM-489](https://hibernate.atlassian.net/browse/OGM-489), [OGM-490](https://hibernate.atlassian.net/browse/OGM-490)

I've rebased everything on top of https://github.com/hibernate/hibernate-ogm/pull/319 and I've applied all the remarks. This pull request does not include Neo4j parser and therefore does not need the CypherDSL library. I've opened a jira to add the Neo4j repository:  [ORG-2050](https://issues.jboss.org/browse/ORG-2050)

I've also found the error in the sequence generator, I created the unique constraint on the wrong attribute.
This should be fixed now. 

This patch is creating several redundant atrributes on nodes and relationships and I will improve that with future pull requests.

@emmanuelbernard: I've applied all the remarks and added some comments, I hope now it is a bit clearer what it is going on by looking at the code. 

@gunnarmorling: I guess you have to rebase the previous pull requests, I don't think you will have too many conflicts. I will give you the link with the query parser branch soon