CCoinsViewMemPool cleanup

Move the mempool lock into CCoinsViewMemPool, since the existing code
always manually locks the mempool (with the lock having same lifetime
as the view!).

Move a call to CMempool::pruneSpent into CCoinsViewMemPool::GetCoins,
since CCoinsViewMemPool::GetCoins is called only once in the codebase,
followed by a call to pruneSpent with a `TODO` suggesting it be moved.
Remove a dup check from AcceptToMemoryPool, make mapNextTx private
Merge branch '5347'