Bug #3052 document the managesieve Perl module

because "Blah blah blah" is not documentation.
managesieve: modernise K&R code

Wow, there was still some hiding in the dusty corners.
mboxevents: don't dereference NULL uidset
sync: better uniqueid debuggin
append: clean up error handling
managesieve: use xmalloc/xstrdup

- use the x* versions
- don't check the results against NULL
managesieve: whitespace/indentation fixes
Bug #2897 - fix check for duplicate service names

Things go horribly wrong if two separate SERVICES entries in cyrus.conf
have the same service name.  In particular, the accept() call that
allows service processes to receive a connection from a client are
locked using a fcntl lock on a filename (this isn't strictly necessary
on Linux but the code is there for other OSes).  That filename is built
using the name of the entry in SERVICES.  If two or more services have
the same name, and the prefork= option is used, one but one of them will
block in fcntl() instead of in accept(), and no client will be able to
connect to them.

When master reads cyrus.conf, it can and should check for this.  And in
fact it used to, there is code in there designed to detect duplicate
names, issue a complaint to syslog, and fail to start master.  This
could be better; for example, it might be capable of detecting a
*second* mistake in the file before exiting.  But at least it's clear.

Except...that check was broken in commit

  36d5924 fixed bug #2582 - friendly handling of removed services (via SIGHUP)

about 2 years after it was added in commit

  cb95f9f abort if we get two identical service names

which is by the same author.
Bug #2897 - document that cyrus.conf needs unique names
Fix crash upon master SIGHUP handling

Non-primary services share configuration data with their primary instance.
Double-freeing it is bad.
Don't close socket if not necessary

In some rare cases, a disabled (too many failures) non-primary service may fail
to be reactivated upon SIGHUP, have its 'exec' field restored and be disabled a
second time. This second time its socket is not open and we would close the
standard input file descriptor (0) which messes things up later.
master: use xclose()

Note that this changes the "invalid fd" state from 0 to -1, which should
prevent the kind of accident fixed in commit

  3cf771e Don't close socket if not necessary
mboxevent: check for single-item uidset as well
mboxlist: fix type warnings
Ignore .libs folders for git
Speedup services recycling upon SIGHUP

When waiting for incoming connection, make sure calls do not restart
upon SIGHUP
If recvfrom is interrupted by SIGHUP, this is not an error
Fixed compilation warning
Add service protocol family name in logs.

Log some more actions: process forked, service instance activated
master: remove Service.family

We don't really need it anymore.