Added more methods to blockchain.go

Restructured blockchain a little bit to help with common methods
Added tests for most of the errors
Added most of the other methods for blockchain.go
Split up the btcd connector from the blockchain explorer.

Makes the code easier to figure out.
Added ifoc color definition
Added tests for ifoc
Renamed methods to be more go-like
Added canonical error handling for blockexplorer/btcd.
Added more functions for ifoc/color
IMPORT PATH MODIFICATION CHANGESET
----------------------------------

Please use this changeset as the first one on top of the original codebase.
Note that if there are new imports, they need to be changed as part of this
changeset. In general, use "git rebase" on github.com/jimmysong's version
and apply this changeset first.