[Feature]: support collaborator presence without a cursor
### What's the feature?

We are using tldraw to support drawing annotations over screen shares in the Roam app (https://ro.am/). We have a scenario in which we want to allow the person sharing their screen to annotate over their own screen share. We do this by placing an invisible overlay on top of the shared window and using tldraw in that overlay. This works well but we'd like to avoid sending their cursor in this scenario because it's already included as part of the screen share video (so if we included it in the presence information there would be double cursors). There is other presence information we'd like to send for that user like scribbles so we don't want to disable presence for them entirely.

We settled on the patch below to allow rendering presence without sending a cursor but we are open to other solutions.

```diff
diff --git a/node_modules/@tldraw/editor/dist-esm/lib/components/LiveCollaborators.mjs b/node_modules/@tldraw/editor/dist-esm/lib/components/LiveCollaborators.mjs
index 65dc48b..fbc22a5 100644
--- a/node_modules/@tldraw/editor/dist-esm/lib/components/LiveCollaborators.mjs
+++ b/node_modules/@tldraw/editor/dist-esm/lib/components/LiveCollaborators.mjs
@@ -53,8 +53,7 @@ const Collaborator = track(function Collaborator2({
   const zoomLevel = editor.getZoomLevel();
   const viewportPageBounds = editor.getViewportPageBounds();
   const { userId, chatMessage, brush, scribbles, selectedShapeIds, userName, cursor, color } = latestPresence;
-  if (!cursor) return null;
-  const isCursorInViewport = !(cursor.x < viewportPageBounds.minX - 12 / zoomLevel || cursor.y < viewportPageBounds.minY - 16 / zoomLevel || cursor.x > viewportPageBounds.maxX - 12 / zoomLevel || cursor.y > viewportPageBounds.maxY - 16 / zoomLevel);
+  const isCursorInViewport = !!cursor && !(cursor.x < viewportPageBounds.minX - 12 / zoomLevel || cursor.y < viewportPageBounds.minY - 16 / zoomLevel || cursor.x > viewportPageBounds.maxX - 12 / zoomLevel || cursor.y > viewportPageBounds.maxY - 16 / zoomLevel);
   return /* @__PURE__ */ jsxs(Fragment, { children: [
     brush && CollaboratorBrush ? /* @__PURE__ */ jsx(
       CollaboratorBrush,
@@ -79,7 +78,7 @@ const Collaborator = track(function Collaborator2({
         chatMessage: chatMessage ?? ""
       },
       userId + "_cursor"
-    ) : CollaboratorHint ? /* @__PURE__ */ jsx(
+    ) : !!cursor && CollaboratorHint ? /* @__PURE__ */ jsx(
       CollaboratorHint,
       {
         className: "tl-collaborator__cursor-hint",
```

<em>This issue body was [partially generated by patch-package](https://github.com/ds300/patch-package/issues/296).</em>


### Where would you like this feature?

The developer package

### Contact Details

_No response_

### Code of Conduct

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