Extract TestCase DSLification into separate file

This allows other gems to register spec types.