bitcoind won't start if datadir is specified in the conf file and the user running it has no home dir

tested with debian stretch and bitcoin 0.17.1

```
# sudo -u bitcoin bitcoind -daemon -conf=/usr/local/etc/bitcoin/bitcoin.conf -pid=/run/bitcoind/bitcoind.pid

************************
EXCEPTION: N5boost10filesystem16filesystem_errorE
boost::filesystem::create_directories: Permission denied: "/home/bitcoin"
bitcoin in AppInit()

bitcoind: chainparamsbase.cpp:29: const CBaseChainParams& BaseParams(): Assertion `globalChainBaseParams' failed.
Aborted

# mkhomedir_helper bitcoin

# sudo -u bitcoin bitcoind -daemon -conf=/usr/local/etc/bitcoin/bitcoin.conf -pid=/run/bitcoind/bitcoind.pid
Bitcoin server starting
```


#if defined(HAVE_CONFIG_H)
#include <config/bitcoin-config.h>
#endif
#include <chainparams.h>
#include <chainparamsbase.h>
#include <logging.h>
#include <util/system.h>
#include <util/strencodings.h>
#include <wallet/wallettool.h>
#include <stdio.h>
const std::function<std::string(const char*)> G_TRANSLATION_FUN = nullptr;
static void SetupWalletToolArgs()
{
    SetupHelpOptions(gArgs);
    SetupChainParamsBaseOptions();
    gArgs.AddArg("-datadir=<dir>", "Specify data directory", false, OptionsCategory::OPTIONS);
    gArgs.AddArg("-wallet=<wallet-name>", "Specify wallet name", false, OptionsCategory::OPTIONS);
    gArgs.AddArg("-debug=<category>", "Output debugging information (default: 0).", false, OptionsCategory::DEBUG_TEST);
    gArgs.AddArg("-printtoconsole", "Send trace/debug info to console (default: 1 when no -debug is true, 0 otherwise.", false, OptionsCategory::DEBUG_TEST);
    gArgs.AddArg("info", "Get wallet info", false, OptionsCategory::COMMANDS);
    gArgs.AddArg("create", "Create new wallet file", false, OptionsCategory::COMMANDS);
}
static bool WalletAppInit(int argc, char* argv[])