Fixed a bug with trace deletion undo functionality.
The problem was that when you press "undo delete", the trace goes back into "Idle", but the task to call "finalizeDeletion" will still be called. So if you schedule a new deletion, the old deletion finalizer might swoop in when you should still have 10 more seconds. This is a quick and dirty fix that associates an "id" (as DeletionKey) with each `setDeletePending` and `finalizeDeletion` call, so that an old finalizeDeletion call would have an invalid ID.