Adding end to end exception handling

This is a major step towards improving CurateND's exception handling.

It is comprised of many commits because this was my work towards a verifying feature test.

DLTP-123
Unused method argument - `params`. If it's necessary, use `_` or `_params` as an argument name to indicate that it won't be used. You can also write as `search(*)` if you want the method to accept any arguments but don't care about them.