[mboxevent] Return the user authz ID when a notification is triggered worth associating with a user
[mboxevent] Add an extra, optional parameter vnd.cmu.sessionId to event notifications
Ensure MessageAppend and FlagsSet/FlagsClear have access to the username triggering the action
Enhance SSL/TLS configuration options, and apply further enhancements
from #2642 (Goetz Babin-Ebell) and #3119, #3133 (Duncan Gibbs)

Changed settings:

    ldap_tls_cacert_dir -> ldap_ca_dir
    ldap_tls_cacert_file -> ldap_ca_file
    ldap_tls_cert -> ldap_client_cert
    ldap_tls_check_peer -> ldap_verify_peer
    ldap_tls_ciphers -> ldap_ciphers
    ldap_tls_key -> ldap_client_key

    tls_ca_file -> tls_client_ca_file
    tls_ca_dir -> tls_client_ca_dir

        The paths formerly used as the CA file or directory for client SSL
        certificate verification are now specifically named as such.

    tls_cipher_list -> tls_ciphers

    tlscachedb -> tls_sessions_db
    tlscachedb_path -> tls_sessions_db_path

        While tls_sessions.db is indeed a caching database, consistency
        makes it more transparent what setting applies to what database.

New settings:

    tls_client_cert: <none>
    tls_client_key: <none>

        Client SSL certificate and key to use when cyrus-imapd behaves as
        a client (to other cyrus-imapd server (instances)).

    tls_client_ca_file: <none>
    tls_client_ca_dir: <none>

        Certificate Authority file or directory used to verify client SSL
        certificates.

    tls_client_certs: off|optional|require

        Disable, allow or require clients authenticate with an SSL
        certificate.

    tls_server_cert: <none>
    tls_server_key: <none>

        Server SSL certificate and key to use for connections from
        clients.

    tls_server_ca_file: <none>
    tls_server_ca_dir: <none>

        Certificate Authority file or directory used to verify SSL
        certificates offered by other servers.

    tls_compression: 0

        Enable TLS compression. Disabled by default.

    tls_eccurve: prime256v1

        Select the elliptic curve used for ECDHE.

    tls_prefer_server_ciphers: 0

        Prefer the cipher order configured on the server-side.

    tls_versions: ssl2 ssl3 tls1_0 tls1_1 tls1_2

        Disable SSL/TLS protocols not in this list.

Bugzilla #3822, #3830, #3843, #3861.
Prefix all configuration options related to automatic creation of mailboxes
with autocreate_*.
Fix compiler warnings
Allow suppressing autocreate functionality
Merge #3374 from worldonline/ticket/3374-master
Apply new default for unixhierarchysep (#3682)
Apply new default for expunge_mode and delete_mode (#3684, #3685)
Update the option names in cunit tests as well
From 0d80ef50 by Bron Gondwana: Bug #3390 - add 'proc_path' config variable for proc directory
Issue configuration option deprecation warnings.

Add back the deprecated options to lib/imapoptions, so we can issue the deprecation warnings.
Index Extension - Fix backward compatibility
Date and Index Extension Fixes

Addressed observations made by Дилян Палаузов
Update docs and bump bytecode version.
[sieve] fix backward compatibility for sieve index extension

There was a version of the bytecode that had the index extension but did
not update the bytecode codepoints, nor did it increment the bytecode
version number.  We use heuristics to determine if the index extension
support was included in the particular version of the bytecode.

This patch allows usage of these unnumbered versions of bytecode.
[sieve] Date and Index Extensions: return false instead of SIEVE_FAIL

From [RFC5260] Section 4. Date Test
   The date test returns false unconditionally if the specified header
   field does not exist, the field exists but does not contain a
   syntactically valid date-time specification, the date-time isn't
   valid according to the rules of the calendar system (e.g., January
   32nd, February 29 in a non-leap year), or the resulting string fails
   to match any key-list value.

Section 6. Index Extension does not specify what to do if the specific
occurrence of the header field does not exist.  It makes sense to
return false in this case instead of SIEVE_FAIL.

SIEVE_FAIL cancels execution of the entire script, which causes the
message to fall back to the implicit keep.
[cunit] cunit.pl: fix init of CU_SuiteInfo type for CUnit 2.1-3

The struct CU_SuiteInfo in CUnit has two new members.  This means we
need two extra NULLs in the initilization.

This should allow the proper code to be generated, based on what
autoconf detects
[sieve] add imap4flags reference

added RFC 5232 to references in preparation of implementing "imap4flags"
sieve extension

Big changes will be the addition of:
- the "hasflag" test
- the ":flags" argument to "keep" and "fileinto"

Additionally, "mark" and "unmark" actions will be deprecated.