* fix: invalidate worktree list cache after create and remove
After creating or removing a worktree, the list cache was not cleared,
so the UI would show stale data for up to 30 seconds.
* fix: normalize cache key in removeProjectWorktree
Greptile review caught that project.path was used raw while the cache
stores normalizePath(project.path), so the delete could silently miss
on paths with trailing slashes or backslashes.