<!-- Describe the issue -->
`getrawtransaction` fails
<!--- What behavior did you expect? -->
Return decoded raw tx
<!--- What was the actual behavior (provide screenshots if the issue is GUI-related)? -->
* `bitcoin-qt -prune=8192  -server -rpcuser=rpc -rpcpassword=rpc -onlynet=ipv4 -rpcbind=127.0.0.1:18332 -testnet`
  * BTC 0.18.0
  * `getrawtransaction b423b2b22d6d74376de2887c07f7c84ae890a93d541fcc6dbf3686f2923b2753 1`
![image](https://user-images.githubusercontent.com/3670331/58841021-658d7180-8668-11e9-9f9f-ed1f794070ea.png)
  * BTC 0.17.1
  * `getrawtransaction b423b2b22d6d74376de2887c07f7c84ae890a93d541fcc6dbf3686f2923b2753 1`
![image](https://user-images.githubusercontent.com/3670331/58841089-9ff70e80-8668-11e9-8a68-5022631b43d7.png)

<!--- How reliably can you reproduce the issue, what are the steps to do so? -->
Request `getrawtransaction`.
<!-- What version of Bitcoin Core are you using, where did you get it (website, self-compiled, etc)? -->
Official from site.
<!-- What type of machine are you observing the error on (OS/CPU and disk type)? -->
`Linux pentagon 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) x86_64 GNU/Linux`, u5200, 2x8Gb, SSD
<!-- For the GUI-related issue on Linux provide names and versions of a distro, a desktop environment and a graphical shell (if relevant). -->
QT
<!-- Any extra information that might be useful in the debugging process. -->
<!--- This is normally the contents of a `debug.log` or `config.log` file. Raw text or a link to a pastebin type site are preferred. -->

+ HelpExampleCli("signrawtransactionwithwallet", "\"myhex\"") +
            "\nTest acceptance of the transaction (signed hex)\n"
            + HelpExampleCli("testmempoolaccept", "[\"signedhex\"]") +
            "\nAs a JSON-RPC call\n"
            + HelpExampleRpc("testmempoolaccept", "[\"signedhex\"]")
                },
    };
    if (request.fHelp || !help.IsValidNumArgs(request.params.size())) {
        throw std::runtime_error(help.ToString());
    }
    RPCTypeCheck(request.params, {
        UniValue::VARR,
        UniValueType(), 
    });
    if (request.params[0].get_array().size() != 1) {
        throw JSONRPCError(RPC_INVALID_PARAMETER, "Array must contain exactly one raw transaction for now");
    }
    CMutableTransaction mtx;
    if (!DecodeHexTx(mtx, request.params[0].get_array()[0].get_str())) {
        throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "TX decode failed");
    }
    CTransactionRef tx(MakeTransactionRef(std::move(mtx)));
    const uint256& tx_hash = tx->GetHash();
    CAmount max_raw_tx_fee = DEFAULT_MAX_RAW_TX_FEE;
    
    if (request.params[1].isBool()) {
        throw JSONRPCError(RPC_INVALID_PARAMETER, "Second argument must be numeric (maxfeerate) and no longer supports a boolean. To allow a transaction with high fees, set maxfeerate to 0.");
    } else if (!request.params[1].isNull()) {
        size_t weight = GetTransactionWeight(*tx);
        CFeeRate fr(AmountFromValue(request.params[1]));