Remove ExceptionList.
Simplify all test-failing catch blocks (catch(PreservedException){...}catch(Exception){...}) by consolidating all PreservedException-unwrapping within Case.Fail(Exception).
To avoid silently skipping tests that accept arguments and instead fail them due to a parameter count mismatch, phase out the ZeroParameters restriction on the default convention.
Remove awkward Lifecycle class by moving its members to more appropriate places.
Consistent exception variable naming.