Expose command documentation and schema via api

This adds the server-side interface to exposing command metadata to the client.  This ships back a simple JSON object when you GET the command object, including appropriate etag support to encourage client caching.

It also adds help rendering, granted with a terrible placeholder template, and adds that to the metadata.  This puts in place the basic infrastructure of allowing the client to read this data from the server, rather than hard-code or guess at it.