Add BIP0022 and BIP0023 getblocktemplate support

This pull requests adds full `BIP0022` and most of `BIP0023` support for the getblocktemplate RPC to btcd.  In particular it adds support for:

* BIP0022 Non-Optional Sections
* BIP0022 Long Polling
* BIP0023 Basic Pool Extensions
* BIP0023 Mutation `coinbase/append`
* BIP0023 Mutations `time`, `time/increment`, and `time/decrement`
* BIP0023 Mutation `transactions/add`
* BIP0023 Mutations `prevblock`, `coinbase`, and `generation`
* BIP0023 Block Proposals
It could be, but the template belongs to the work state as opposed to the RPC server.  Thus, I think it makes more sense to do the updating against the thing that owns it.