add support for 'many' mutations to the Eloquent Builder

This will allow us to have two types of mutations, either coming from a
HasOne or belongsTo relationship or form a hasMany relationship where
dealing with related results is much different than single model
results, with many results we are dealing with an Eloquent\Collection
instead of a plain array.

Also adds a lot of mutation-specific helper functions that makes it
easy to work with mutations in a centralized manner.
ignore sublime project/workspace stuff
implement HasOneOrMany abstract relation

This implementation is pretty identical to
Illuminate\Database\Eloquent\Relations\HasOneOrMany, it actually
extends it and implements functional methods according the way we work
with them in NeoEloquent.
make HasOne extend HasOneOrMany instead of OneRelation

a HasOne relationship has nothing to do with functionalities similar to
belongsTo relationships like associate(), it uses save() and others
from the hasMany() in a singular manner.
implement and test (functional) hasMany relation

This commit introduces the hasMany relationship and its tests, good
stuff!
minor indentation tweaks