Improve the model and capabilities for rich text in the API.

This updates the rich text support in the API to allow clients to force
text to be of a specific type. There's now a `?force-text-type=` query
parameter that will cause all Markdown-aware fields to be formatted in
the requested way. If passing "plain", then any Markdown escaping will be
unescaped before being returned, and if "markdown", then any plain text
will be escaped.

This can later be expanded. For example, we may add "html" to do the
rendering server-side, further reducing the burden on the client.

In order to be consistent, this also replaces the `rich_text` field in
request and response paylods with `text_type`. For response payloads,
this will show "markdown" or "plain" (instead of True/False), or will
show the forced text mode (if/when a different mode is supported). For
requests, it will accept only "markdown" or "plain".

This is the first half of the change. The second half moves the
JavaScript codebase and templates to make use of the new API changes.