Make proof of stakes valid on spent outputs
Make proof of stakes valid on spent outputs

When Bitcoin 0.8 was merged the proof of stake check was changed to use
the new CCoin interface to get the transaction and verify the signature.
But the new behavior is different because this interface doesn't return
the outputs that have been spent.

So a node would not accept a proof a stake if the kernel has been spent
in its current chain, whereas this proof could be valid and part of a
new best chain. In a specific scenario the node could be stuck on a
fork.

This commit reverts to the previous behavior based on the complete
transaction (that was already loaded anyway).

The check that the CoinStake inputs are not spent is still done when the
block is connected to the main chain.

peercoin/peercoin,ppcoin/ppcoin,DigitalPandacoin/pandacoin,glv2/peerunity,DigitalPandacoin/pandacoin,ppcoin/ppcoin,glv2/peerunity,DigitalPandacoin/pandacoin,DigitalPandacoin/pandacoin,peercoin/peercoin,peercoin/peercoin,peercoin/peercoin,peercoin/peercoin,peercoin/peercoin,ppcoin/ppcoin,DigitalPandacoin/pandacoin,glv2/peerunity,ppcoin/ppcoin,glv2/peerunity,DigitalPandacoin/pandacoin