Determine Content-Type header dynamically

- GitHub issues: closes #1
- Use a 'mediaType' field in Response
- Assume text/plain by default
- Pass 'response' along through some methods (should be refactored later)
  - executeRoute() may alter 'response', so call it before constructing
    headers
- TODO Address images (see XXX in code)