Use common error facility instead of sdap_result

Simplifies and consolidates error reporting for ldap authentication paths.

Adds 3 new error codes:
    ERR_CHPASS_DENIED  - Used when password constraints deny password changes
    ERR_ACCOUNT_EXPIRED  - Account is expired
    ERR_PASSWORD_EXPIRED  - Password is expired
Removing unused declaration of functions and variable.

Variables dir_cc and file_cc are used in three
modules: krb5_common.c, krb5_utils.c, krb5_child-test.c, therefore should be
declared with extern in krb5_utils.h.
Move SELinux processing to provider.

The SELinux processing was distributed between provider and
pam responder which resulted in hard to maintain code. This
patch moves the logic to provider.

IT ALSO REQUIRES CHANGE IN THE SELINUX POLICY, because
the provider also writes the content of selinux login
file to disk (which was done by responder before).

https://fedorahosted.org/sssd/ticket/1743
Reuse cached SELinux mappings.

Reuse cached SELinux maps when they are requested
within time interval (in this patch it is hardcoded to
be 5 seconds).

https://fedorahosted.org/sssd/ticket/1744
Make the SELinux refresh time configurable.

Option ipa_selinux_refresh is added to basic ipa options.
Provide a be_get_account_info_send function

In order to resolve group names in the simple access provider we need to
contact the Data Provider in a generic fashion from the access provider.
We can't call any particular implementation (like sdap_generic_send())
because we have no idea what kind of provider is configured as the
id_provider.

This patch splits introduces the be_file_account_request() function into
the data_provider_be module and makes it public.

A future patch should make the be_get_account_info function use the
be_get_account_info_send function.
Add unit tests for simple access test by groups

I realized that the current unit tests for the simple access provider
only tested the user directives. To have a baseline and be able to
detect new bugs in the upcoming patch, I implemented unit tests for the
group lists, too.
Do not compile main() in DP if UNIT_TESTING is defined

The simple access provider unit tests now need to link against the Data
Provider when they start using the be_file_account_request() function.
But then we would start having conflicts as at least the main()
functions would clash.

If UNIT_TESTING is defined, then the data_provider_be.c module does not
contain the main() function and can be linked against directly from
another module that contains its own main() function
Resolve GIDs in the simple access provider

Changes the simple access provider's interface to be asynchronous. When
the simple access provider encounters a group that has gid, but no
meaningful name, it attempts to resolve the name using the
be_file_account_request function.

Some providers (like the AD provider) might perform initgroups
without resolving the group names. In order for the simple access
provider to work correctly, we need to resolve the groups before
performing the access check. In AD provider, the situation is
even more tricky b/c the groups HAVE name, but their name
attribute is set to SID and they are set as non-POSIX
Convert sdap_access to new error codes

Also simplify sdap_access_send to avoid completely fake _send() routines.
ldap: Fallback option for rfc2307 schema

Add option to fallback to fetch local users if rfc2307is being used.
This is useful for cases where people added local users as LDAP members
and rely on these group memberships to be maintained on the local host.

Disabled by default as it violates identity domain separation.

Ticket:
https://fedorahosted.org/sssd/ticket/1020
Making the ldb check configurable

It is possible to enable/disable checking in LDB memberof plugin
whether it was built against the same version of LDB that is present
on the system. This feature is turned off by default
and enabled in Fedora/RHEL spec file.

https://fedorahosted.org/sssd/ticket/1813
BUILD: Always run distcheck and RPM tests in /dev/shm

Some of the tests (such as the sysdb tests) are highly I/O limited.
By running them on a ramdisk, we can significantly speed up the
test runs when doing a distcheck or RPM build.

https://fedorahosted.org/sssd/ticket/1840
correct order in error_to_str table

Also fixed typo.
tests: Print warning if LDB_MODULES_PATH is not set

Print warning if sysdb-tests or sysdb-ssh test are run
individually and LDB_MODULES_PATH was not set.

https://fedorahosted.org/sssd/ticket/1820
do not leak memory on failure in *_process_init()
change responder contexts hierarchy

https://fedorahosted.org/sssd/ticket/1575

The hierarchy is now:
main_ctx -> responder_ctx -> specific_ctx

where specific_ctx is one of sudo, pam, etc.
coding style fix
Return error code from ipa_subdom_store
Fixing duplicate const

const char const * --> const char *const