Property setters on CaseExecution have consistent visiblity.
Update R# suggestion severity for 'ReturnTypeCanBeEnumerable'.
Move test case discovery from ConventionRunner to DiscoveryModel.
DiscoveryModel returns collections as IReadOnlyList rather than IEnumerable, because IEnumerable incorrectly implies that they are lazily evaluating collections.
The ExecutionModel decides which cases to skip, and can look up their skip reason.
The DiscoveryModel owns discovery of test case parameters.
The ExecutionModel owns the ordering of cases in a test class.