Change Assert.That to take a variable-length list of constraints, and add Constraint.withFailureMessage() to allow custom messages. Constraint is now an abstract class rather than an interface.