Notable changes are:
* Refactored views, utilizing more of Djangos features, resulting in simpler
code.
* URLs are now the same when initially filling out a form and when editing a
submitted form which contained errors.
* Instead of a result page showing the response from the DNS server (which is
now logged using Djangos "logging" functionality) the user is now redirected
back to the record listing of the current zone when the action was successful
or stays on the form page when an error occured. Proper success/error
messages are shown in both cases by utilizing Djangos "messages"
functionality.
While it might not be that common to have a DNS server listening on a
non-standard port for DNS queries, it's also useful for local testing.
I used the opportunity to add model migrations as well to enable smooth model
upgrades.
binder has been broken to work with signatures created with anything but
dnspythons default TSIG algorithm, which currently is HMAC-MD5.
This commit fixes that by properly using the algorithm stored for the key.