fix the soft deleting issue

This requires the use of Vinelab\NeoEloquent\Eloquent\SoftDeletingTrait
instead of Illuminate\Database\Eloquent\SoftDeletingTrait
add soft deleting instructions and quick reference
improve the output format of QueryException
fix an issue with querying a relation by its Id and write a test for the case
major fix - belongsToMany relationships now have incoming directions

Since BelongsToMany relations are a Many form of the BelontsTo
relationship then it must have the INCOMING relationship type instead
of the OUTGOING
isolate id property replacement in the Grammar.

This way we can have a better control on what to name the Id and whatnot, all in one place instead of spreading it around.
fix an issue with querying parent models after using whereHas().

Queries like $user->whereHas('roles', function($q) {..})->where('id', $user->getKey()))
would query the related node 'role' instead of 'user', with this fix everything should work
as expected.
rename function getRelation() to getRelationName()
modify the direction of the HyperMorph relationship after the change in BelongsToMany.

BelongsToMany used to have outgoing relationships until discovered that it shouldn't
be the case, and since HyperMorph is extending that relationship it should now reverse
the direction and constraints to match in OUTGOING instead.
properly implement the replacement of an id attribute to be non-static _nodeId

With this commit our ids will be replaced with a concatenation of the node identifier:
iduser and idrole where 'user' and 'role' are our node identifiers, this opens up the door
for querying multiple models in the same query without worrying about the id naming.
update tests after the drastic id changes adding querying parent with whereHas test
update readme removing the _nodeid limitation notes