Forms now provide a full jinja/html template instead of just the rows of fields. This gives a lot more flexibility for generators to do clever things in the input forms (mutually dependent fields etc). Currently, all forms return a generic template, which is the same as what was previously contained in the index template. This uses a new custom filter that renders a template (analogous to e.g. the PYthon "eval" function)
Factored a few of the larger static parts ("home" page and the offcanvas settings box) out of the index template for readability.