Refactor error handling so we do chain the error with the `?` operator rather than wrapping it with own types. Links to other error chains are created with error chain. All unneeded error kinds were removed. No API changes.
And add missing header in one file
This is actually a domain library and thus should be put into the lib/domain/ folder.