Using master. During startup, if you open `Window` -> `Console` and try and execute any command (can be garbage) `bitcoin-qt` will crash:
```bash
On branch pull/16118/local-merge

Process 89287 launched: '/Users/michael/github/bitcoin/src/qt/bitcoin-qt' (x86_64)
2019-05-29 09:57:56.276746-0400 bitcoin-qt[89287:939924] MessageTracer: Falling back to default whitelist
Process 89287 stopped
* thread #1, name = 'bitcoin-main', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x8)
    frame #0: 0x00000001015158ba QtWidgets`QCompleter::popup() const + 10
QtWidgets`QCompleter::popup:
->  0x1015158ba <+10>: movq   0x8(%rdi), %rbx
    0x1015158be <+14>: movq   0x88(%rbx), %rax
    0x1015158c5 <+21>: testq  %rax, %rax
    0x1015158c8 <+24>: jne    0x101515942               ; <+146>
Target 0: (bitcoin-qt) stopped.
```

Not sure if just disabling the menu, like in #16118 would be ok, as a user might actually want to be able to run a command.
#include <QTimer>
#include <QStringList>
const int CONSOLE_HISTORY = 50;
const int INITIAL_TRAFFIC_GRAPH_MINS = 30;
const QSize FONT_RANGE(4, 40);
const char fontSizeSettingsKey[] = "consoleFontSize";
const struct {
    const char *url;
    const char *source;
} ICON_MAPPING[] = {
    {"cmd-request", ":/icons/tx_input"},
    {"cmd-reply", ":/icons/tx_output"},
    {"cmd-error", ":/icons/tx_output"},
    {"misc", ":/icons/tx_inout"},
    {nullptr, nullptr}
};
namespace {
const QStringList historyFilter = QStringList()
    << "importprivkey"
    << "importmulti"
    << "sethdseed"
    << "signmessagewithprivkey"
    << "signrawtransactionwithkey"
    << "walletpassphrase"
    << "walletpassphrasechange"
    << "encryptwallet";
}
/* Object for executing console RPC commands in a separate thread.
*/
class RPCExecutor : public QObject