Separated traits as required

Fixes #2

There are 3 new traits - CreatedBy, UpdatedBy and DeletedBy, that add the
default relationship accessor when used with the user class defined in the
configuration.

Blameable is sticking around as a way of interrogating whether a model is
blameable for an event (most of the time you don't need to add it).

It turns out that traits can't extend other traits - they have to inherit from
them (i.e. use ParentTrait). This causes probelsm when you want several traits
to inherit a method, and then use several of those traits in one class - the
methods inherited from the base trait clash against themselves! I'm developing
on 5.4 so this might have been fixed in 5.5...
Fix trait docblocks
Add missing file doc headers, remove @version tag as I'll never remember to update it