Implementing the save method in 3.0

This implements `Table::save` in the new ORM. As main highlights of this pull request I'd like to mention:

* No mapping of sequences in postgres is needed anynmore like in 2.x
* Save is by default wrapped in a transaction
* Listeners in beforeSave are able to modify the options array
* Listeners in beforeSave are now able to stop the save but still return a success for the save
* Only the columns that changed in an entity will be saved
* It is possible to hint save so it knows whether to do an insert or an update, if there are no hints it will figure it out by itself
* Their is a rudimentary work towards allowing multiple column primary keys, but still unfinished

I have left out on purpose validation and associations saving as I will address those later in another PR.