Detect double spends, and fire a DetectedDoubleSpend signal

Detects two double-spend conditions:
1) Receive a transaction that conflicts with a mempool transaction
2) New block contains a transaction that conflicts with a mempool transaction

... and fires a new signal. Future commits will use this signal handler
to note the double-spend attempt if the transactions are in our wallet,
and will relay first double-spends.
CBloomFilter::clear() method
Relay first-double-spend transactions

Instead of dropping double-spent transactions, relay them to peers.
Why? To make it easier for merchants to quickly detect attempted
fraud for low-value, in-person purchases.

A bloom filter is used so that only the first double-spend is
relayed, to prevent an attacker from mounting a network
denial-of-service attack by flooding it with double-spends of
a transaction output they control.
Merge branch 'first_double_spend' of
https://github.com/gavinandresen/bitcoin-git into first_double_spend

Conflicts:
	src/main.cpp
	src/txmempool.cpp
	src/txmempool.h

Removed Gavin's early version of removed-transaction feedback from
CTxMemPool::removeConflicts.

Removed unused local variable "result" from same function.