Make contacts temporary

Only store federated contacts temporarily in memory.
Remove old contacts from wallets as they are opened since they are no longer used.

Since federation results are subject to change we have to request them on each new session, so there is no reason to save them in the wallet. Federated contacts are now cached until the user logs out and not saved in the wallet.