Automate maintenance of the THANKS file

THANKS now is automatically maintained for you. It uses git author
data to append people who submitted patches in the past.

For non-commit THANKS, you can still manually edit this file.

This commit removes from the THANKS file the people that appear
as git commit authors since we started committing them after
commit 6c976bd. These removed entries get automatically re-
added by `make`.
Add .mailmap file for a sane committer identity history.
fix make distcheck
Fixup automatic THANKS generation

This avoids the need to use mktemp as well as fixes the removal of the
blank lines in THANKS that we want. This notably does not fix the
dependency issue for AUTHORS.gz on the Git history.
Cleanup silly variable name

For some reason I kept swapping THANKS with AUTHORS in my head. Made it
confusing for people reading that rule.
Force build of THANKS.gz every time

Use a PHONY target to force this build step on every invocation of Make.
Ideally we'd be able to detect when a commit has been made but this is a
quick hack that's correct but rebuilds it unecessarily.
Add Fedor Indutny to THANKS
since=now. Get changes from now. close #COUCHDB-1501
COUCHDB-1502 - Allow user to delete own _users doc
Handle ddoc_updated event correctly.

COUCHDB-1309 introduced a new update event of the form {ddoc_updated,
{DbName, DDocId}}. Unfortunately it did not update
couch_db_update_notifier with a clause that can marshal this to JSON
successfully, breaking all uses of [update_notification]

This commit improves event encoding so that the above renders as
{"type":"ddoc_updated","db":"DbName","id":"DDocId"}

COUCHDB-1508
COUCHDB-1512 - Validate bind address

This patch validate the bind_address value before attempting to bind
the mochiweb socket, giving an 'invalid_bind_address' error. This
should help users who have specified a hostname or made a typo as the
original error was less helpful.

Fix as suggested by Dave Cottlehuber.
COUCHDB-1511 - User docs require doc.roles

A _users doc must include roles otherwise the user receives an opaque
error. This patch throws an error if it is missing and adds a test to
verify that the user receives a readable error message.
COUCHDB-1491 - cleanup view tables

A bad pattern in couch_index_server for the EXIT case prevented the
cleanup of the BY_SIG table, causing subsequent view requests to
receive a dead pid.
Add utc_id_suffix UUID algorithm
Assert that index sig never changes in the lifetime of a couch index process

COUCHDB-1444 demonstrates that #st{} state get out of sync
somehow, leading to unexpected 404's (missing_named_view) and
200's. This patch ensures that index sig never changes in the hope
that it will lead to the cause of 1444 and prevent other occurrences
of the same class of bug.
Restore max_document_size protection
COUCHDB-1444 Fix missing_named_view errors

Relying on exit signals we were accidentally replacing view state
incorrectly when an exit signal accidentally spidered between various
processes related to couch_os_processes. This changes the state updates
to be a '$gen_cast' instead.
COUCHDB-627 - Support all timezones

Some timezones are incorrectly handled by OTP's calendar module. The
ironic thing is that we only ever need the time in GMT (for HTTP
response headers and the log file).

This patch duplicates httpd_util:rfc1123_date/0 and /1 but uses
universal time everywhere, avoiding the broken conversion code.

Also relates to COUCHDB-1513, a duplicate of COUCHDB-627.
Revert "COUCHDB-1444 Fix missing_named_view errors"

This reverts commit f5341a7dc65e96b806a958a27c9ccee5ec431162.
COUCHDB-1444 Fix missing_named_view

Instead of replacing 'EXIT' signals we can just stuff the process that
exited into the exit reason and match on that.