Improve error reporting

Replace cannot_do() with cannot_do_message().  Raise in each of the
dependent classes directly.

See: Jira ticket HYDRUS-340