Part of #141 ## Goal Let a client clean entity storage, removing empty entities and releasing orphaned locks, with paging for large task hubs. ## Scope - Add a clean entity storage method on the client, sending `CleanEntityStorageRequest` with remove empty entities, release orphaned locks, and a continuation token, and returning counts plus the next token. - For a standalone backend, implement the `CleanEntityStorage` RPC, remove entities that have no state and no lock, and release locks held by orchestrations that are no longer running. ## Reference durabletask-dotnet `DurableEntityClient.CleanEntityStorageAsync`, `CleanEntityStorageRequest`, and `CleanEntityStorageResult`. An entity is empty when it has no state and is not locked. A lock is orphaned when its holder is not running. ## Depends on The backend entity state storage and locking.