Add new logging subsystem for mining related ops.

This commit adds a new logging subsystem named MINR which is used for
logging mining releated operations.
Add options to control block creation settings.

This commit adds three new options which are intended to to be used by the
upcoming mining-related block template creation code.
Add infrastructure for creating a block template.

This commit adds a new function named NewBlockTemplate along with
supporting infrastructure which is part of the core functionality needed
to support mining.

In particular the function creates a new block template which contains a
fully populated block with a zero nonce that is ready to be solved as well
as additional information regarding the fees and number of signature
operations for each transaction included in the block.  The specific
transaction selection logic mirrors the reference implementation.

Various cleanup, optimizations, and comment suggestions provided by
@owainga.  Also contains some naming suggestions and comment fixes from
@flammit.