Sanity check the AppDomain communication boundaries used by runners (Listener, DiscoveryProxy, ExecutionProxy) to catch the use of types that will fail to work across the AppDomain boundary. This sanity check catches the most likely issues but cannot detect all possible runtime issues. Use this sanity check to expose TestMethod as an invalid type and fix it so that it becomes valid.
First pass at supporting paramterized test cases whose inputs are not known during discovery time but are known at execution time.