### Describe the issue

Testing in bitcoin 0.13.0, calling `bitcoin-cli listsinceblock x` is outputting all double-spent transactions that are in the wallet, even those that were double-spent well and truly before x.
### Is the issue reproducible?

Yes
#### List steps to reproduce below:
1.   Create a double-spend send to your wallet (easiest using bip125)
2.   Wait until one confirms, and then wait a few more blocks
3.   Run `bitcoin-cli listsinceblock $(bitcoin-cli getbestblockhash)` and it will output the double spent transaction
### Expected behavior

The double-spent transaction that was conflicted before the block hash should be filtered

{
public:
    CWallet * const pwallet;
    void ProcessSubScript(const CScript& subscript, UniValue& obj) const
    {
        
        std::vector<std::vector<unsigned char>> solutions_data;
        txnouttype which_type = Solver(subscript, solutions_data);
        obj.pushKV("script", GetTxnOutputType(which_type));
        obj.pushKV("hex", HexStr(subscript.begin(), subscript.end()));
        CTxDestination embedded;
        if (ExtractDestination(subscript, embedded)) {
            
            UniValue subobj(UniValue::VOBJ);
            UniValue detail = DescribeAddress(embedded);
            subobj.pushKVs(detail);
            UniValue wallet_detail = boost::apply_visitor(*this, embedded);
            subobj.pushKVs(wallet_detail);
            subobj.pushKV("address", EncodeDestination(embedded));
            subobj.pushKV("scriptPubKey", HexStr(subscript.begin(), subscript.end()));
            
            if (subobj.exists("pubkey")) obj.pushKV("pubkey", subobj["pubkey"]);
            obj.pushKV("embedded", std::move(subobj));
        } else if (which_type == TX_MULTISIG) {
            
            
            obj.pushKV("sigsrequired", solutions_data[0][0]);
            UniValue pubkeys(UniValue::VARR);
            for (size_t i = 1; i < solutions_data.size() - 1; ++i) {