Keep right to bind on privileged ports under Linux

Only available on Linux systems with libcap.
Master then becomes cyrus before forking any child, and can (re)bind on
privileged ports upon SIGHUP.

Original code by Greg Banks, with necessary configure.ac section and code
macro to restrict its use to Linux systems (others may not have the same
features/functions/constants).
Recycle running services upon SIGHUP on master.

Master process now propagates SIGHUP to all running services, which triggers
their recycling.
Log processes that were not recycled within 30s

Done in janitoring code, so the test and log may be done a bit after 30s
No more need to loop over signals to handle

There is only one left, so as for the others, install it explicitly.
Make sure to catch more than one SIGHUP in services

Otherwise the second one really kills us
Refactor unecessary code in signals_reset_sighup_handler
Refactored unnecessary code in signals_add_handlers
signals: memset the struct sigaction

just to be entirely sure we're not feeding random bits to the kernel.
master: spawn undermanned services early

Otherwise interrupting signals can prevent master from reaching the desired
number of workers in a timely manner.
fix compile error when !HAVE_LIBCAP
Formatting fixes for installsieve manpage
sieve: handle more values in action_to_string()
sieve: use xstrndup()
Bug 3617: fix ACL check setting flags in delivery

When setting IMAP flags on a message during delivery, for example due to
a Sieve script requesting it, check for the 'p' = ACL_POST right instead
of the 'w' = ACL_WRITE or 't' = ACL_DELETEMSG right.  This seems to be
the correct interpretation of the following text in RFC2068

   [...] The currently defined standard rights are:
[...]
   w - write (STORE flags other than SEEN and DELETED)
[...]
   p - post (send mail to submission address for mailbox,
       not enforced by IMAP4 itself)

which implies that 'w' only applies for the IMAP STORE command.
mbexamine: print CID (will be zero without Conversations code backport)
Remove sieve action string

We use sieve to forward messages to a notification
daemon which can send SMSes, and we don't want them
filled with information about the actions which
Sieve took.

This patch stops the action_string being appended to
the message sent to the notify daemon.
GUID IMAP COMMANDS

This patch factors out stuff we used to have in the old MD5UUIDs
patch, the following FETCH responses in imapd:

FETCH DIGEST.SHA1 => 40 character hex string (message sha1)
FETCH RFC822.SHA1 => 40 character hex string (message sha1, calculated)
FETCH RFC822.FILESIZE => size of actual file on disk (via stat or mmap)

It also adds a capability string item: "DIGEST=SHA1"

Totally non-standard of course, but way useful for our replication checking
scripts.  Embrace and extend 'r' us.

Anyone feel like writing an RFC for fetching the digest of a message via
IMAP?  If the server calculated it on delivery and cached it then you'd have
a great way to clean up after a UIDVALIDITY change or other destabilising event
without having to fetch every message again.
Tool to build debian package directory
hammer_cyrusdb: now with more generic
Fatal -> abort in common daemons