Cleanup command API

Cleaned up in the command API (again...) and removed some repetitive code.
Now parameters are arbitrary hashes and thus extendable without causing further incompatibility.
Responses are also all hashes now, serving machine-readable data only instead of the mix it was before.

Block / tx notifications now include the object hash and payload as hex, instead of the (inofficial) json representation.

Since this is already a major breaking change, any other thoughts on the API while we're at it?

TODO:
* bitcoin_node cli API
* docs