Fix issue where custom metadata of a Message wasn't cloned

Object#clone is not a deep clone, so the metadata hash was itself not
being cloned.
Build in server/client response tracking to Command

Finally figured out a good way to apply the pattern seen in commands
like Echo into the core of the system. Now Commands know how to handle
Server responses, Client responses, and keeping track of all the Clients
who are supposed to respond to a given Command.
Update internal Commands to the new receive_*_response methods
Update documentation on some classes

Most of the Command documentation deleted here now lives on the website,
making it redundant and a bit wrong.
Add version specifiers to mocha and fakefs