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
Yes, but notification order here is not important.  It only exists to notify the channels that long poll clients are waiting on that it's time to return a new block template.