CreateNewBlock() now takes scriptPubKey argument,
rather than a key.

CreateNewBlockWithKey() helper is added to restore existing functionality,
making this an equivalent-transformation change.
RPC: getblocktemplate does not require a key, to create a block template

getblocktemplate only uses certain portions of the coinbase transaction,
notably ignoring the coinbase TX output entirely.

Use CreateNewBlock() rather than CreateNewBlockWithKey(), eliminating
the needless key passing.

Should be zero behavior changes.
Fix out-of-bounds check
Merge pull request #2935 from sipa/obounds

Fix out-of-bounds check
Document and test OP_RESERVED weirdness

Seems it was forgotten about when IsPushOnly() and the unittests were
written. A particular oddity is that OP_RESERVED doesn't count towards
the >201 opcode limit unlike every other named opcode.
miner: constify CreateNewBlock() arg scriptPubKeyIn
Merge pull request #2938 from petertodd/op-reserved-weirdness

Document and test OP_RESERVED weirdness
Merge pull request #2928 from jgarzik/cnb-txout

CreateNewBlock / getblocktemplate cleaning