Add a primitive index view and controller
Use data objects for views

This changes the view logic so that they accept data hash maps which can
contain variable properties, so:

    {% if not _footer.hidden %}
      {% include "_footer.html" %}
    {% endif %}

becomes:

    (if (not (data :hide-footer)) (footer/html))