Allow addNewComponentToLayout to accept a caller-supplied UUID
## Summary
Update the core layout action `addNewComponentToLayout` (`ui/src/features/layout/layoutModelSlice.ts`) so a caller can optionally pass the UUID the new component should get. When no UUID is supplied, it keeps generating one itself.
## Why
The Canvas AI chatbot is being updated to build pages row by row. To place a new row relative to a previously placed component, the agent needs that component's UUID — so the backend needs to know the UUID ahead of the component being placed.
We can't place a component and then send its UUID back to the AI afterwards, because of how the build loop works — see [the loop in action](https://git.drupalcode.org/project/canvas/-/work_items/3591777#the-loop-in-action--building-a-cookie-shop-homepage).
Full context: #3591777 (roadmap item 1).
## Scope
- Add optional `uuid` to `AddNewNodePayload`.
- `_addNewComponentToLayout` uses `payload.uuid ?? uuidv4()`.
---
_Issue generated with AI assistance._
issue