Introduced TestCase and ITestCase,

which will replace part of the role currently played by FirstClassCommand.
The reason for this is that it turns out that the xUnit.net framework
makes certain assumptions about the IMethodInfo instance passed to the
TestCommand constructor. At the time a static test method starts
enumerating test cases, there's not enough information available about the
actual test method.

Instead, the new approach will be to have test methods yield sequences of
ITestCase, and the ITestCase interface will then subsequently have a
conversion method that returns a proper ITestCommand.
Added a test action to TestCase.
Added a null Guard Clause to TestCase's ctor.
Added a conversion method to ITestCase,

and implemented it on TestCase.
Changed the contract of first-class tests,

so that they must return sequences of ITestCase instances. This prepares
the ground for modifying FirstClassTestCommand so that the IMethodInfo
supplied to it doesn't depend on the TestAction (which doesn't work), but
rather on the supplied IMethodInfo.
Added a Null Guard Clause to ConvertToTestCommand,

although it's not strictly needed at this point, because the method
argument is not yet used.
Added an IMethodInfo argument to FirstClassCommand

constructor.
Removed redundant private helper method.