Consolidate all Netatalk specific conversion in pull_charset_flags()

Netatalk specific conversion like '/' <-> ':' and CAP de-/encoding
was performed partially in pull_charset_flags() and push_charset_flags().
The resulting code was unmaintainable and as a result it failed to
to the proper conversion of ':' to '/' for an UTF8 -> UTF8-MAC
conversion.

Moving all Netatalk specific conversion to pull_charset_flags()
we can now easily do the necessary conversion in one place.

* ":xx" CAP sequences are decoded if CONV_UNESCAPEHEX is used
* ':' and '/' are CAP encoded if CONV_ESCAPEHEX is used
* ':' is converted to '/' only for a conversion whos target charset
  is UTF8-MAC and whos source charset is NOT UTF8-MAC
* '/' is converted to ':' only for a conversion whos source charset
  is UTF8-MAC and whos target charset is NOT UTF8-MAC
* a leading '.' is CAP encoded if CONV_ESCAPEDOTS is used

This consolidation obsoletes both CONV_ALLOW_COLON and CONV_ALLOW_SLASH
conversion options.
Import from Docbook
Check for KerberosV API funcs krb5_free_keytab_entry_contents and krb5_kt_free_entry
Install functional PAM config file to PAM include directory

Install a PAM config file which includes the 'other' service.
Fixes bug #481.
Remove special arg used by dbd of dbd_add() and dbd_lookup()
Rewrite dbd to use CNID IPC instead of opening the db directly

In order to fix buf #447 (race condition between dbd and cnid_dbd)
dbd must be converted to work over the network IPC channel with
cnid_dbd instead of directly working on the BerkeleyDB CNID database.

Add CNID db IPC command for wiping the db
Ignore db stamp when reading CNID from adouble file

The db stamp (which is the ctime of the cnid2.db file stored in  the
db at creation time) may change when running `dbd -f` or when deleting
the CNID db manually. But we don't want to reassing CNIDs in this case
(changed stamp) we really want to keep it.
Use ad_getid() instead of ad_forcegetid()

ad_getid() now ignores the db stamp when reading the CNID, so we
can simply use it instead of using ad_forcegetid().
Restructure opening and deleting the CNID dbs and CNID wraparound support

If opening the db fails, delete it and recreate a new empty one.

Add handling of CNID overflow, ie when the last used CNID reaches
its maximum (UINT32_MAX), wrap around to CNID_START. This then neccesites
a modification to get_id() where we used to just increment the last
used CNID counter and use that as next CNID.
Now we need to ensure that it isn't already used in the db and keep
searching for an used in case it is in a loop.

Move locking function back to main.c, as it's only used by cnid_dbd.

Modify dbd_add() such that it can add an entry with the CNID passed
in from the client, the CNID hint read from the adouble file.

Invalidate CNID hint in case lookup detected a problem
Get the db stamp in cnid_get_stamp()

Previously we actually intersected the IPC call to get the db
stamp in transmit() when the firt actual CNID IPC function is
executed.

Drop the check for changed db stamps.

Add a simple function for the get stamp IPC stuff.
Update news
Fix an error parsing afp.conf in the iniparser

Netatalk didn't start when the last line of the config file
afp.conf wasn't terminated by a newline. Fixes bug #476.
Add dev to log message and print type as string
Several fixes

Allow the usage of -r option.
Fix flags argument to cnid_open().
Update usage.
Remove dupicate variable myvol, use vol instead
Import manpage from XML
Configurable symlink behaviour

Add a new volumes option 'follow symlinks'. The default setting is
false, symlinks are not followed on the server. This is the same
behaviour as OS X's AFP server.
Setting the option to true causes afpd to follow symlinks on the
server. symlinks may point outside of the AFP volume, currently
afpd doesn't do any checks for "wide symlinks".

In order to provide a somewhat consistent interface, add an API
of o* function wrappers for filesytem related functions.
These functions take an an additonal option arg (hence the o) which
tells the functions whether symlinks shall be followed or not.
Set charset names
strdup optarg and add -m option for specifying the Mac charset
Simple fix, remove doubled colon from getopt string