[Bug]: Updating shape props to undefined is ignored when using `editor.updateShape`
### What happened?

When attempting to update an arbitrary value (in the example below, props.text) within the props of a shape to undefined using editor.updateShape, the update to undefined is ignored.

```ts
const shape = editor.getShape(createShapeId('sample'))
if (!shape) return

const newShape = {
  ...shape,
  props: {
    ...shape.props,
    text: undefined,
  },
}
editor.updateShape(newShape)
```

> [!NOTE]
>  if `editor.store.put` is used instead, the update to undefined works as expected 🙆🏻‍♂️  

### How can we reproduce the bug?

[CodeSandbox](https://codesandbox.io/p/sandbox/tldraw-example-forked-ykz2v2)

[Prerequisites]
The text displayed on the shape references the value of `props.text`, which is 「I'm a shape!」.

1. Press the "reset" button
    - When the button is pressed, the `props.text` of the displayed shape is updated to `undefined`.
2. The update is not reflected, and 「I'm a shape!」 is still displayed 😱


![CleanShot 2024-11-20 at 12 15 35](https://github.com/user-attachments/assets/eaf38a43-c6cd-49f7-900b-15bd7aea39f0)


### What browsers are you seeing the problem on?

Chrome

### Where did this happen?

The developer package

### Contact Details

_No response_

### Code of Conduct

- [X] I agree to follow this project's Code of Conduct