Ignore files produced during bootstrap/build.

This helps to avoid adding files that shouldn't be added.
build: avoid building static libraries and non-PIC objects.

Since the PAM module can only be loaded from the shared object, and the
test libraries are used through LD_PRELOAD, there is no reason for the
second set of non-PIC objects to be built, or the archive files created.
build: install the documentation files in the docdir
pam: make the debug variable static to the unit.

Since the variable is never used in pam_extra.c this ensures that the
symbol will not collide with any other similarly-named symbol from other
objects.
pkg-config: make OpenSSL a private requirement.

When not using static linking, the OpenSSL libraries do not require to be
explicitly linked in. Since the package is already relying on OpenSSL
pkg-config to be present (on the Requires: line), then it's easier to use
Requires.private and ignore it from Libs altogether.
build: use pkg-config to find OpenSSL.

The pkg-config file already relied on OpenSSL's pkg-config file to be
present, and there is no reason to expect a modern system not to have
OpenSSL (plus, if the pkg-config files are not present, pkg-config allows
overriding the path without having to resort to --with-openssl).

This also removes forced inclusion of OPENSSL flags in login_duo and
pam_duo that do not make use of OpenSSL directly.
build: replace libcompat with libcommon and move common functions there.

This is the first step needed to reduce the symbol table exported by
libduo: by moving the functions shared by login_duo and pam_duo on a
separate object, libduo's exported interface only has to be the one exposed
by the duo.h header.
build: tell libtool to only export a limited set of symbols.

For libduo only export the duo_* symbols, which are exposed by duo.h.

For the PAM module only export the pam_sm_* symbols that compose the public
module interface.
build: do not add -lpam to LIBS when building with PAM.

This was introduced by the use of AC_SEARCH_LIBS to identify the presence
of pam_vprompt, as it changes the value of LIBS. With the new code,
AC_SEARCH_LIBS can also be replaced with the simpler AC_CHECK_FUNCS macro.
pam_duo: allow using try_first_pass/use_first_pass options.

These options are commonly used with pam_unix and pam_pgsql and allow
to re-use a previously presented password; at the same time, this
allows for the password to be read from binary prompts such as when
used with ftpd servers.

The pam_get_pass function is derived out of pam_pgsql which in turn
derives it from FreeBSD and is licensed by Juniper Networks under
2-clause BSD license (ISC-like).
pam_duo: replace match on 'su' service with a use_uid parameter.

This make it behave a lot like Linux-PAM's pam_wheel, and allows using
the same behaviour with any other similar service, rather than just
with su.
pam_duo: add a push option to force using push as factor.

This only changes the prompt to force the use of a given factor for
pam_duo, allowing to use this in conjunction with pam_unix for actual
dual-factor authentication of users on services such as ftpd.
Merge pull request #19 from Flameeyes/master

various fixed from Flameeyes