Add default charset to Content-Type headers for text types.

No `charset` is specified in the `Content-Type` header. That leads some browsers to pick ISO-8859-1 or other legacy character encodings. That's probably not intended.

This patch causes a character encoding of `UTF-8` to be added to the `Content-Type` header if the file's mime type starts with `text/`.