add some remarks to readme
add the ability to specify a component to compile

Sometimes we might need to specify and compile a single CypherGrammar
component so that we do not duplicate the process.
remove unnecessary columnizing check since it will always be an array
add the 'id' as a column to check in the Grammar when parameterizing

The Neo4j client have the ability to replace properties b/w { } with
passed values. We’ve already implemented a way to replace the id(n)
that is treated differently by Neo4j to get a node by its ‘id’, but
when the dev decides to fetch the ‘id’ within specified columns i.e.
User::first([‘id’, ‘name’]), this also has to be treated differently
through the Client so this commit does it :smile:
revamp the way columns are assigned as properties

Previously we were extracting the properties from the query itself
(matching what’s b/w { }) which is unreliable since it is based on no
order specified and may cause issues like replacing [‘id’ => 1,
‘updated_at’=>DATE] with [‘id’=>DATE, ‘updated_at’=>1].

In this commit we modify the way bindings are added to be in the form
of a [‘key’=>’value’] that way it’s impossible to mismatch the value
and the key.
implement updating a node

This commit implements the update of a node yey!