CTxOut::output - implement operator==
CTxOut::output - implement operator==

Refactor CTxOut and CTxOut::output so that the nType is stored as part of the output rather, as this is required to cleanly implement operator== and otherwise cleans up the code.
Refactor CTxOut to make use of DeleteOutput and AllocOutput helpers instead of duplicate code that was present.
Change CTxOut serialisation to include transaction type.
Implement CTxOut::IsPoW2WitnessCoinBase method.

nlgcoin/guldencoin-official,nlgcoin/guldencoin-official,nlgcoin/guldencoin-official,nlgcoin/guldencoin-official,nlgcoin/guldencoin-official,nlgcoin/guldencoin-official