Refactoring Model Traits

Refactored all of the model traits:
- Renamed traits to be (hopefully) more intuitive
- Changed various method signatures to make them more uniform
- Broke up CRUDOperations trait into two smaller traits (CRUDOperations and NameIdMethods)
- Added extra lifecycle methods to make the insert and update lifecycles more flexible in their use (can use them with both Instance and NewInstance arguments)