libcyrus_min:libconfig:config_read: add parameter config_need_data

config_read() has assumed, that there is a global external variable
config_need_data, exposed by all binaries, that use libconfig.c.  Converting
libcyrus_min.a to a shared library implies, that all programs, that link
with libcyrus_min, have to export the symbol config_need_data, even
if they do not use libcyrus_min:libconfig.c:config_read.  imtest uses
libcyrus_min, but does not have config_need_data.

-- change the interface of config_read to add an extra parameter const
   int config_need_data, and adopt all invocations of config_read to the
   new API.

-- instruct masterconf_init to call config_read with 0 as second parameter
libimap:global:cyrus_init add parameter config_need_data

The applications linking with libimap.a have to define a global symbol
int config_need_data, so that global.c:cyrus_init can call
libcyrus:libconfig:config_read . Not all applications using libimap.a
make use of the libconfig:config_read facility, so for them there is
no point to deal with the config_need_data symbol.

-- change the API of imap/global.h:cyrus_init to accept one additional
   parameter: int config_need_data
-- change all invocations of cyrus_init to pass that parameter
-- delete the global symbol config_need_data (except in binaries calling
   master:service:service_init)
notifyd/notifytest: add a function fatal

... because "fatal" is undefined symbol in libcyrus, and when linking
with libcyrus this symbol has to be defined.
configure.ac, Makefile.am: Add libtool support

-- rename obsolete AC_AIX to AC_USE_SYSTEM_EXTENSIONS
-- autoconf: `AC_PROG_RANLIB' is rendered obsolete by `LT_INIT'
-- build all libtool archives only as dynamic libraries
/.gitignore: update to ingore .la, .lo and .libs/ files
convert lib/libcyrus_min.a to libtool archive

-- link the perl/{imap,sieve/managesieve} modules with this shared library
convert lib/libcyrus.a to libtool archive
convert com_err/et/libcom_err.a to a libtool archive

-- in com_err/et/error_table.h import the definition of errno with
   #include <errno.h>. In libc with TLS errno might be defined with
   _thread, or have otherwise different definition from "int errno"
-- install the library as $(libdir)/libcyrus_com_err.so, when cyrus-imapd
   was configured to use the bundled implementation of libcom_err
convert sieve/libsieve.a to a libtool archive

-- install the library under $(libdir)
-- rename the library to libcyrus_sieve in order to make it unique in
   $(libdir)
convert imap/libimap.a to a libtool archive

-- install the library in $(libdir)
-- rename the library to libcyrus_imap, in order to give it a unique name
perl/.../Makefile.PL.in move -lcyrus from MYEXTLIB to OTHERLDFLAGS

In the generated Makefile the subdir targets depended on MYEXTLIB,
MYEXTLIB contained "-lcyrus_min -lcyrus", and it was not possible to build
"-lcyrus".  The "-l" parameters were mvoed to  'dynamic_lib' =>
{OTHERLDFLAGS} so that they are used for linking, but do not cause any
dependencies.
Makefile.am: compress COM_ERR_LIB and COM_ERR_LIBS to a single variable
creating *_err.[ch] now depends on internal com_err/et/compile_et

-- add dependency on (only internally build) com_err/et/compile_et for
   generating sieve/sieve_err.[ch] and imap/(imap,mupdate,nntp)_err.[ch]
   files from the corresponding _err.et files.  This dependency is disabled
   when system-wid 'compile_et' is used.   Without it parallel builds failed.
-- delete com_err/et/compile_et on "make distclean"
Use libtool non-static convenience libraries for the perl modules

-- build by default all distributed libraries as shared
-- build libcyrus and libcyrus_min under perl/ as libtool non-static
   convenience libraries
-- link perl/imap/IMAP.sp and perl/sieve/managesieve/managesieve.so
   statically with the non-static libraries, so that IMAP.so and
   managesieve.so do not depend at run time from the installed shared
   libraries and the RPATH, where those installed shared libraries are.
Require libtool at only 2.2.6

which works just as well and is shipped on slightly older boxen.
Use LDFROM not LIBS for libcyrus in Makefile.PL

because that works, and using silently produces broken .so's.
mboxname: more general mboxname_user_mbox API

Two changes from mboxname_user_inbox

- first it takes a subfolder (in internal format)
- second, it returns a malloc'd string, so is safe to use more than
  once in the same function
strarray: add flags support to _split*

Why?  So we can pass STRARRAY_TRIM, saying "trim leading and trailing
whitespace".  Thanks to needing to support slopping written auto-rules.

(and when I say slopping I mean - that's how the docs are written for it)
mboxname: clean up error message
add MOVE capability as an alias for XMOVE

Meaning we'll be compatible with the draft which is out there.