Merge wip/model and manager abstraction into dev

I've improved the abstraction between database and functionality between Commitment and Event to reduce duplicate code and make it easier to work on database stuff without affecting fucntionality (or vice versa).