replace touching models by only adding timestamps to those who need it

Turned out touch() actually saves the model (honest mistake, didn't look at it before using it) which would run many save queries and update related model's updated_at flag although it's not necessary so we'll just add timestamps to the models that has them enabled.
implement whereIn, whereBetween and whereNull to correctly format id column name

In cases where we're querying using these wheres and an ID property it needs to be formatted correctly like id(node) for the query to work.
enhance the query exception message
add sync() and attach/detach support for all relations inheriting from HasOneOrMany
implement the Cypher aggregate compiler
add aggregate methods to query builder

All the aggregate methods by Laravel and Neo4j are now supported. Yey!
update CRUD test removing unnecessary assertions
test getting model count
add aggregates to readme
add collect() aggregate documentation to readme