feat(logging) - Errors and Logging (WIP)

- [x] [SD-1297] Re-factoring the API (HTTP) Errors: 
- [x] [SD-1274] Backend: Create a list of errors (with error codes) to be raised in ingest
- [ ] [SD-1275] Backend: Create log messages to changes to channel configurations
I think SuperdeskError should inherit from Exception, SuperdeskApiError should inherit from ValidationError. 

SuperdeskError and all sub classes are representing the non-http errors whereas SuperdeskApiError is for HTTP errors.

@amagdas what do you think?