The Listener interface accepts AssemblyInfo instead of Assembly as an argument to its AssemblyStarted and AssemblyCompleted methods, because attempts to pass Assembly across AppDomain boundaries causes assembly load failures at runtime for client runners that need to provide their own Listener instantiated on their own side of the AppDomain boundary.
Add a smoke test for the declaration of Listener, whose input and output types must be limited to those which can serialize successfully across an AppDomain boundary.
Drop unused Parameters properties from FailResult/PassResult/SkipResult as a step toward making these types serializable so that they can cross AppDomain boundaries. Listeners will not have access to arbitrary method paramters, but they do have access to their summary via the Case's Name string.
Improve ListenerTests' smoke test of Listener input/output serializability so that it catches likely mistakes without being needlessly strict.
FailResult, PassResult, SkipResult become safe to use as inputs to Listener implementations, even when those implementations are instantiated in another AppDomain.