Error handler improvements, relationship improvements
Breaking changes:
- Changes to the way error codes are returned. Status is general eg. 400 or 500 and error objects are more specific. Eg. 404
Non breaking changes:
- Code cleanup
- Relationship improvements