AssemblyResult is a tree of all test case results.  AssemblyResults contain ConventionResults, which contain ClassResults, which contain CaseResults.  These are serializable so that they can cross the per-assembly AppDomains.
The console app builds an ExecutionResult by collecting each AssemblyResult.
The ExecutionResult tree classes are located in the Fixie.Results namespace.
ExecutionResults expose the collection of AssemblyResults.
Instead of producing NUnit-style XML reports via a Listener, which is limited to describing only a single assembly and complicates file writing, NUnit-style XML reports are generated from the complete ExecutionResult tree built across all test assemblies.
Fixes tracking of all CaseResult objects, even when a test class has all of its cases skipped.