account-state-manager had two latent correctness issues:
1. Shared references: snapshotAccount stored the live store arrays/objects
directly, so a later in-place mutation (array push/splice, or a shared
email object being stamped) retroactively corrupted an earlier snapshot.
Now copies the captured collections.
2. Incomplete restore: the snapshot only captures a subset of each store's
fields, but restoreAccount applied it with a merge, leaving every other
field (email selection, loading flags, tag counts, …) at the previously
active account's values. It only worked because every caller happened to
call clearAllStores() first. restoreAccount now resets the stores to
baseline itself before layering the snapshot back on, so it is correct
standalone and can't leak state across accounts.
Adds tests pinning the isolation guarantees.