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
I thought btcd used *btcjson.Error for JSON-RPC errors?  This might be fine, but I worry about a missed type assertion if this isn't consistent.