Old features implemented
Refactor into LinkRepository
some more refactoring
Another major refactor

I’m pretty happy with this state of affairs, will start building on top
of this.
Major Ideas:

 - Separate insert from updates - I first do a batch insert of
everything then figure out which relationships need updating which
fields - that way in some cases it will end up with more SQL queries
than possible, but the code is much much simpler. Could be optimised in
the future of course.
- Use SplObjectStorage as much as possible as it has a lot of useful
helper methods. Since we have identity map, then the default
->contains() and ->attach() methods make a lot more sense.
- Didn’t found any sane way to separate Links from Models
Started mass assignment implementation
Implement Mass Assignment
add editor config, use spaces instead of tabs
Some more refactoring

- will use “initialize” methods now instead of clunky “class named”
initialize methods
- simplified events
- actually call appropriate events
- simplified persisting models
progress

move fields to camel case
implement native field defaults
fix soft delete, and other progress
Refactor Rel joins
Initial implementation of external link map
Move link classes to repo namespace
use one and many Rel Interfaces
Refactor Repo

- Make Repo class static
- Refactor ObjectStorage to static methods
- add getField, getRel to SchemaTrait
remove unneeded method
refactor
Identity map should save only persisted items
should throw exception if invalid Rel
Add has one Rel