Generalize template handling

Rather than just letting people override the description, let's let them override any of the fields.

(Don't be too afraid of this diff, it's mostly documentation changes).