override Connection's run to throw our QueryException

Overriding the run() method of the connection will allow us to override
the thrown QueryException with Neo4j specific details about the error.
add node id replacement accessors to Connection
update bindings handling to support key=>value

With the addition of relationships on our way we will need the bindings
to be in the form of $key => $value, with this commit we are also
supporting nested bindings.
update to Laravel 4.2 and php 5.4

Will also remove Orchestra/testbench since it breaks on 4.2 and the
requirement of laravel/framework is really bad.
revamp TestCase after removing orchestra/testbench
revamp ConnectionTest and make it pass after TestCase update
add QueryException implementing Everyman\Neo4j\Exception
always cast ids to int with find() to avoid metldowns
move connection getter test method to TestCase

Will be useful for all the upcoming classes so why not have it
globalized there!
implement belongsTo relationship :smile:

This commit introduces support for the first ever relationship for this
driver. It is the One-to-One’s belongsTo relationship.

With Cypher it represents and INCOMING relationship towards the parent
relationship (parent)<-[:RELATIONSHIP]-(related).

To achieve that with eager loading we had to introduce a new aspect
called Mutations, they are used to match models back to their original
instances and assign the resulting models to the correct instance.
Enjoy reading through the code!
update Query and Eloquent builders unit tests
add functional tests

Functional tests are a way to test out the overall functionality of the
package, what it supports and how it can be used. So far they are
fairly simple to make sure that we’re not breaking any of the original
functionality as we iterate with sprints.
update readme with Relationships and better docs
add Slack notifications to #graphdb