Add coinbase commitments

This provides infrastructure for soft-forking bitcoin to include extra per-block committed data in transactions separate from the coinbase, so that Merkle proofs of these commitments do not have to include the entire coinbase transaction. This is accomplished by means of anyone-can-spend outputs in the coinbase which are spent COINBASE_MATURITY blocks later by the miner who finds the block, embedding the block's commitment in an OP_RETURN output of that spending transaction.

Includes one such commitment with no attached validation rules, suitable for document time-stamping, merged mining, and other free-form miner-committed data applications.
Add 'budget' field to getblocktemplate which reports required coinbase outputs other than the miner payout.
Add soft-fork mechanism for coinbase commitment rules.
Update CBlock::CURRENT_VERSION to 3, a vote for coinbase commitments.