library: Add openconnect_set_dpd()

Some users on unstable connections have requested the ability to lower
the local DPD timeout, so the VPN reconnects more quickly if the
connection hangs.

The new library call also implements sanity checks to prevent openconnect
from going bananas when somebody passes in "--force-dpd 1" or
"--force-dpd -1".

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
tun: Export os_shutdown_tun() to library callers

This lets the caller safely exit after the connection has been paused,
instead of having to re-enter the mainloop, reconnect, and then send
OC_CMD_CANCEL.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
main: Refactor signal handling

Eliminate the SIGUSR1/SIGUSR2 debug logging behavior and introduce new
behavior for the following signals:

    SIGINT: Disconnect and logoff, run vpnc-script accordingly
    SIGHUP: Disconnect and run vpnc-script (cookie can be re-used)
    SIGTERM: Just die. Disconnect without logoff, no vpnc-script
    SIGUSR2: Reconnect to server immediately as if DPD triggered.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Change most PRG_TRACE prints to PRG_DEBUG

Use PRG_TRACE for the really noisy (and performance-impacting) log
prints, like packet info and "No work to do" polling.  Use PRG_DEBUG for
other verbose-but-infrequent debug output.  Change the command line
parsing so that "-v" enables PRG_DEBUG and "-vv" enables PRG_TRACE.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>