translate values from db for display in UI

uses a translate middleware to add a translate method to locals which is
then used in the templates on values expected to be translated. Uses the
HTTP Accept-Language header to determine which language to use.

This doesn't try to automatically translate things as a) it was proving
to be complex and fragile and b) this means don't need an untranslate
option to enable manipulating the raw data behind the scenes.