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 (!batch[ID_NETWORKINFO]["error"].isNull()) {
            return batch[ID_NETWORKINFO];
        }
        if (!batch[ID_BLOCKCHAININFO]["error"].isNull()) {
            return batch[ID_BLOCKCHAININFO];
        }
        result.pushKV("version", batch[ID_NETWORKINFO]["result"]["version"]);
        result.pushKV("protocolversion", batch[ID_NETWORKINFO]["result"]["protocolversion"]);
        result.pushKV("blocks", batch[ID_BLOCKCHAININFO]["result"]["blocks"]);
        result.pushKV("timeoffset", batch[ID_NETWORKINFO]["result"]["timeoffset"]);
        result.pushKV("connections", batch[ID_NETWORKINFO]["result"]["connections"]);
        result.pushKV("proxy", batch[ID_NETWORKINFO]["result"]["networks"][0]["proxy"]);
        result.pushKV("difficulty", batch[ID_BLOCKCHAININFO]["result"]["difficulty"]);
        result.pushKV("chain", UniValue(batch[ID_BLOCKCHAININFO]["result"]["chain"]));
        if (!batch[ID_WALLETINFO].isNull()) {
            result.pushKV("walletversion", batch[ID_WALLETINFO]["result"]["walletversion"]);
            result.pushKV("balance", batch[ID_WALLETINFO]["result"]["balance"]);
            result.pushKV("keypoololdest", batch[ID_WALLETINFO]["result"]["keypoololdest"]);
            result.pushKV("keypoolsize", batch[ID_WALLETINFO]["result"]["keypoolsize"]);
            if (!batch[ID_WALLETINFO]["result"]["unlocked_until"].isNull()) {
                result.pushKV("unlocked_until", batch[ID_WALLETINFO]["result"]["unlocked_until"]);
            }
            result.pushKV("paytxfee", batch[ID_WALLETINFO]["result"]["paytxfee"]);
        }
        result.pushKV("relayfee", batch[ID_NETWORKINFO]["result"]["relayfee"]);
        result.pushKV("warnings", batch[ID_NETWORKINFO]["result"]["warnings"]);
        return JSONRPCReplyObj(result, NullUniValue, 1);
    }
};
class DefaultRequestHandler: public BaseRequestHandler {