Improve documentation

* document InvalidCommand error class
* re-raise the TypeError you get from handler() when the arguments do not
  match with the name of the actual failed procedure, since Python
  does not.
Fixed formatting