Add param to Job ctor to indicate missing method

Starts to resolve #157. It is marked as 'Jump in', so here goes...

```InvocationData``` almost gives us what we need when it throws an ```InvalidOperationException``` on deserialising if the method is null. The actual exception message thrown is almost exactly what should be shown in the Dashboard.

My idea with this PR will be to stop ```Invocation.Deserialize``` from throwing the ```InvalidOperationException``` if the target method is null, and instead add a couple of properties to the job: a boolean property which will indicate the target method is actually missing, and a text property that will contain the text of the ```InvalidOperationException```.

Then in ```JobMethodCallRenderer.Render``` instead of

    if (job == null) { return new NonEscapedString("<em>Can not find the target method.</em>"); }

it could be replaced with

    if (job.MethodMissing) { return new NonEscapedString(String.Format("<em>{0}</em>"), job.MissingMethodError); }

# TODO
- [x] Add ```bool methodMissing``` to internal ```Job``` ctor, and associated public property
- [x] Fix tests
- [ ] Change ```JobFacts.Ctor_ThrowsAnException_WhenTheTypeDoesNotContainTheGivenMethod``` to be assert that the ctor will not in fact thrown an exception.
- [ ] Add additional unit tests to ```JobFacts``` to assert that the missing method error information is as expected.
- [ ] Add ```MissingMethodError``` property to ```Job```
- [ ] Change the behaviour in ```Invocation.Deserialize``` to populate the ```MissingMethodError```.
- [ ] Change ```JobMethodCallRenderer.Render``` as detailed above.