Invalid characters for a wallet name, e.g. `bitcoin-qt -wallet=你好` used to result in an error like this

<img width="494" alt="schermafbeelding 2018-07-24 om 17 46 37" src="https://user-images.githubusercontent.com/10217/43150553-7bdf598a-8f6a-11e8-8972-44c311a57e56.png">

But now it just crashes:

<img width="509" alt="schermafbeelding 2018-07-24 om 17 43 26" src="https://user-images.githubusercontent.com/10217/43150605-9cf32192-8f6a-11e8-9333-87d074c8dd35.png">

I didn't do a `git bisect`, but it broke somewhere this year :-)
std::vector<OutputGroup> groups;
    std::map<CTxDestination, OutputGroup> gmap;
    CTxDestination dst;
    for (const auto& output : outputs) {
        if (output.fSpendable) {
            CInputCoin input_coin = output.GetInputCoin();
            size_t ancestors, descendants;
            mempool.GetTransactionAncestry(output.tx->GetHash(), ancestors, descendants);
            if (!single_coin && ExtractDestination(output.tx->tx->vout[output.i].scriptPubKey, dst)) {
                
                
                
                if (gmap[dst].m_outputs.size() >= 10) {
                    groups.push_back(gmap[dst]);
                    gmap.erase(dst);
                }
                gmap[dst].Insert(input_coin, output.nDepth, output.tx->IsFromMe(ISMINE_ALL), ancestors, descendants);
            } else {
                groups.emplace_back(input_coin, output.nDepth, output.tx->IsFromMe(ISMINE_ALL), ancestors, descendants);
            }
        }
    }
    if (!single_coin) {
        for (const auto& it : gmap) groups.push_back(it.second);
    }
    return groups;
}