tickets/DM-199: Develop new master-worker result system

Hmmm. I chose invalid_argument because configuration feels like it is in the same spirit. The configuration logic doesn't make sense. I feel like runtime error means there's something about the current environment that you couldn't have predicted when getting things setup--user gave you garbage, something's not right in the system, etc. It's gray because we don't check config at compile time. I don't feel strongly about it, so I'll change it to runtime error. I think we can also make a global ConfigError and have the others inherit from it.