ikev1: Don't queue more than one mode config or XAuth task

At the time we reset an IKE_SA (e.g. when re-authenticating a not yet
established SA due to a roaming event) such tasks might already be queued
by one of the phase 1 tasks.  If the SA is initiated again another task will
get queued by the phase 1 task.  This results in e.g. multiple mode config
requests, which most gateways will have problems with.
ikev1: Fix handling of UNITY_LOAD_BALANCE

The re-authentication is now handled within the original IKE_SA if it has not
yet been established, so we don't want to destroy it.
ipsec: Only set PATH if it is not already set

The comment indicated this but it was always set anyway.  All internal
commands are called via their absolute paths, so the script only uses PATH for
the uname command, but if that is not located in one of the configured
directories the script will fail.

Also, since the internal commands are called via their absolute paths there is
no need to add the directories to PATH.
ipsec: Remove duplicate check for internal commands
ipsec: Update usage output
ipsec: Document missing commands
ipsec: Remove unsupported listcards and rereadgroups commands
vici: Fix message encoding type values in documentation
vici: Return a success result for the clear-creds command

Even if the command actually can't fail, this looks more aligned to similar
commands.
vici: Add a ruby gem providing a native vici interface
configure: Add global --enable-ruby-gems and --with-rubygemdir options

This provides the options to build and install ruby gems for components
providing them, such as vici.
vici: Use "gem"-assisted vici ruby gem building and installtion
vici: Document the available vici command and event messages
vici: Add some simple libvici examples to the README
vici: Document the ruby gem and add some simple examples
vici: Don't include-depend on libstrongswan for boolean types

As we want to avoid the libstrongswan include dependencies for libvici, avoid
the use of the bool type. Unfortunately this change may break the ABI for
vici_dump(). As this function is mostly for debugging purposes, we do it
nonetheless; my apologies if somebody already relies on the ABI stability of
that function.
vici: Reduce debug level during thread spawning

We want to avoid libvici users to get a cluttered stderr for no real error.
vici: Cancel processor before calling library_deinit()

For non-direct libstrongswan users, the deinitialization segfaults because
of the missing worker thread cancellation.
swanctl: Fix exit codes based on errno

As fprintf() most likely sets errno, we should save it before printing the
error message.