When looking up a wallet by string, check a cache first without going through the longer process of identifying which wallet the string corresponds to.
We need also to pay attention to completely release the cache when the TMS is disposed when Done is invoked.