Massive message overhaul.

- Make list of affected test cases available for all execution messages
- Added ITestAssembly, ITestClass, and ITestMethod to go with ITestCollection and ITestCase
  - Update ITestCase and ITestCollection to use the new abstractions instead of strings
  - Update runner classes (less parameters, yay!)
  - Update XunitTestCase and XunitTestCollection (less parameters, yay!)
- Added ITestAssemblyMessage
- Added IXxxCleanupFailureMessage (not yet wired up)
- Changed contract of test collection factories to take ITestAssembly instead of IAssemblyInfo