Remove coinbase-dependant transactions during reorg.

This still leaves transactions in mempool that are potentially
invalid if the maturity period has been reorged out of, but at
least they're not missing inputs entirely.
Fix mempool handling of coinbase spends

The logic for removing/resurrecting transactions from the memory
pool was broken for spends of coinbase transactions; they
were not being removed from the mempool when they should.

Fixed by having DisconnectTip() remove any transactions from the memory
pool that are descendants of the was-mature-but-is-now-immature coinbase
transaction.

A future pull request could keep track of all those removed transactions
and try to resurrect them after re-organizing onto the new chain, but
I'm not sure it is worth writing that code for a case that never happens,
and, if it does happen, should correct itself (wallets should re-broadcast
transactions that don't end up in the chain).
Make CTxMemPool::remove more effecient by avoiding recursion