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 :-)
* from or to us. If fUpdate is true, found transactions that already
 * exist in the wallet will be updated.
 *
 * Returns null if scan was successful. Otherwise, if a complete rescan was not
 * possible (due to pruning or corruption), returns pointer to the most recent
 * block that could not be scanned.
 *
 * If pindexStop is not a nullptr, the scan will stop at the block-index
 * defined by pindexStop
 *
 * Caller needs to make sure pindexStop (and the optional pindexStart) are on
 * the main chain after to the addition of any new keys you want to detect
 * transactions for.
 */
CBlockIndex* CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, CBlockIndex* pindexStop, const WalletRescanReserver &reserver, bool fUpdate)
{
    int64_t nNow = GetTime();
    const CChainParams& chainParams = Params();
    assert(reserver.isReserved());
    if (pindexStop) {
        assert(pindexStop->nHeight >= pindexStart->nHeight);
    }
    CBlockIndex* pindex = pindexStart;
    CBlockIndex* ret = nullptr;
    if (pindex) LogPrintf("Rescan started from block %d...\n", pindex->nHeight);
    {
        fAbortRescan = false;
        ShowProgress(_("Rescanning..."), 0); 
        CBlockIndex* tip = nullptr;
        double progress_begin;