Refactor Command semantics

Command() now takes an (optional) response channel, on which the result of
the apply function will be forwarded once the command is committed. This
refactor removes the CommandResponse method from servers (and peers), and
removes the obligation of clients to consume from it.