message: Add remove of existing wallet from map before adding so add acts
  as a replacement instead of silently failing. Fixes corner case
  of wallet file being removed while eosd/eos-walletd is running.
diff: @@ -50,6 +50,13 @@ std::string wallet_manager::create(const std::string& name) {
  wallet->save_wallet_file();
  wallet->lock();
  wallet->unlock(password);
  +
  + // If we have name in our map then remove it since we want the emplace below to replace.
  + // This can happen if the wallet file is removed while eos-walletd is running.
  + auto it = wallets.find(name);
  + if (it != wallets.end()) {
  + wallets.erase(it);
  + }
  wallets.emplace(name, std::move(wallet));
  return password;
  @@ -64,6 +71,13 @@ void wallet_manager::open(const std::string& name) {
  if (!wallet->load_wallet_file()) {
  FC_THROW("Unable to open file: ${f}", ("f", wallet_filename.string()));
  }
  +
  + // If we have name in our map then remove it since we want the emplace below to replace.
  + // This can happen if the wallet file is added while eos-walletd is running.
  + auto it = wallets.find(name);
  + if (it != wallets.end()) {
  + wallets.erase(it);
  + }
  wallets.emplace(name, std::move(wallet));
  }
  