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
In the end all errors are going to be converted to HTTP errors, right? We should avoid returning `500` from api.
I think we should try to remove the dependency on `ValidationError` completely, will look into it.
The current inheritance chain: SuperdeskApiError inheriting SuperdeskError is good I think.