Relay double-spends, subject to anti-DOS
As an alert, relay at most one transaction that respends a prevout already
spent in an unconfirmed transaction in this node's mempool.

As before, respends are not added to the mempool.

Anti-Denial-of-Service-Attack provisions:
 - Use a bloom filter to relay only one respend per mempool prevout
 - Rate-limit respend relays to a default of 100 thousand bytes/minute
 - Define tx2.IsEquivalentTo(tx1): equality when scriptSigs are not considered
 - Do not relay these equivalent transactions
 - Do not allow relayed respends into our wallet unless they conflict with it,
   even if they pay us.  This addresses a resource exhaustion attack

CWallet::SyncMetaData is changed to sync only to equivalent transactions.

Remove an unused variable declaration in txmempool.cpp.
UI to alert of respend attempt affecting wallet.

Respend transactions that conflict with transactions already in the
wallet are added to it.  They are not displayed unless they also involve
the wallet, or get into a block.  If they do not involve the wallet,
they continue not to affect balance.

Transactions that involve the wallet, and have conflicting non-equivalent
transactions, are highlighted in red.  When the conflict first occurs, a
modal dialog is thrown.

When a conflict is added to the wallet, counter nConflictsReceived is
incremented.  This acts like a change in active block height for the
purpose of triggering UI updates.
Add -respendnotify option, new RPC data, reg test

-respendnotify=<cmd> Execute command when a network tx respends wallet
tx input (%s=respend TxID, %t=wallet TxID)

Add respendsobserved array to gettransaction, listtransactions, and
listsinceblock RPCs.  This omits the malleability clones that are included
in the walletconflicts array.

Add RPC help for respendsobserved and walletconflicts (help was missing
for the latter).

New test doublespendrelay.py uses a 4-node network to test 5 relay
scenarios.