Revert previous commit

It turns out I'm stupid, and that adding an extra parameter to the ctor was wrong, and it is simpler all round to add a specific ctor with less parameters to worry about.
Changed Deserialize to not throw exception

No longer throwing an exception is the new behaviour, instead, we can reuse the error message which was passed to the exception, and instead assign it to the Job so that it can used later (in the Dashboard).

Changed one of the unit tests to verify this change in behaviour, and added another test to verify that the error message we expect to be assigned to the job when a method is missing is correct.