applyOp

Returns the next CardState after applying op, or null if op is invalid.