Reload templates on SIGHUP

Makes it possible to deploy updates to template files without restarting
the server.
Fix authentication in Safari.

We now offer 'qop="auth"', because without it, authentication in
Safari fails immediately. With the field set to auth, authentication
seems to work in the latest Firefox, Safari, Chrome and Internet
Explorer. However, the HTTP package as used in cabal-install has a bug
where it send 'qop="auth"' without an 'nc' or 'cnonce' field. So we
are lenient: when these fields are not present, we fall back to no
qop.

Fixes #132.

[1] https://github.com/haskell/HTTP/issues/54
Merge pull request #199 from hesselink/safari-auth-fix

Fix authentication in Safari.
Extend the POST to PUT/DELETE wrapper hack

Allow HTML forms to do PUT/DELETE methods and to redirect to another
result page. This lets us reuse the machine REST API with HTML forms.
Otherwise we have to duplicate them (we've got too much of this
already and it clutters the codebase).
Little extension to the templating

Helper functions for constructing hetrogeneous dicts
First iteration of a new admin frontend UI
Split the html form wrapper out of the happstack utils

Also extend it a bit more to cope with less trivial JSON.
This is needed for the way aeson encodes Haskell enum types.
Add another templating helper function

For templates using enumeration types in forms
Add more features to the admin account view/edit UI

Password set and reset. Edit extended account info.
Make admin forms a bit clearer visually
Don't use the css box class on the forms

Hangover from the old hackage html/css.
Flesh out the admin interface with a few more features

Finding outstanding account and password reset requests.
Legacy passwords.
Hopefully fix the html validation test

The /admin page now needs admin authorisation
Fix missing decl of required template file
Add AdminFrontend to datafiles in .cabal
Use local type with derived JSON instances for user group resource
Improve user put/delete handlers
Add a more comments to the user feature handlers
Rename user feature serve functions
Extend json responses for user resources