Use Markdown to represent docstrings

We now use the Cheapskate library to process Markdown, but the
dependency is as encapsulated as possible in case we need a different
library in the future.

Remaining:
 1. Rendering of code blocks with syntax highlighting
 2. IDESlave annotation and console font support for things like *bold*
 3. Support for considering the first block-level element to be a
    summary of the docs