Support template mimetypes

Unless I forgot something the only difference between template versions and normal documents is the mimetype.

Fixes #744.
Fixes #746. (still not sure if this is the best API)
Hmm... I wonder how long until we should refactor this into some type of extension lookup table? :fishing_pole_and_fish: