Fix unit-cc not loading configure cache when building files.
Merge pull request #910 from SaberUK/insp20+even-more-build-system-fixes

Fix unit-cc not loading configure cache when building files.
m_sqlite3 Fix cleanup of unsuccessful database connections
Do not use the result of the dns cache when the query type of the result is different from the type of the query. #66
Remove IPv6 address compaction.

This code is incorrect and can produce addresses with multiple double
colons. No other IRCds do this and most systems today will give us the
compact version anyway.

Issue #914
Don't try to set a mode in Channel::SetDefaultModes() if it needs a parameter but does not have one

Thanks to @docwhat for helping to track this down, fixes issue #924
Reject parameters that begin with a colon in Channel::SetDefaultModes()
m_ssl_gnutls Re-set DH params when the gnutls_certificate_credentials_t struct is reallocated
Fix an off-by-one on registration timeout handling.

The use of > instead of >= here added a second onto the configured timeout.

We won't be breaking any existing configuration, because users.h explicitly
increases the limit if it's 0.
Merge pull request #929 from rburchell/insp20

Fix an off-by-one on registration timeout handling.
Revert "Fix an off-by-one on registration timeout handling."

This seemingly breaks (occasionally timing users out a second early), possibly
due to rounding issues on time (User::age and Time() both return int, but a
whole second is comprised of many ms).

The root cause needs investigation, but we cannot leave a potentially breaking
bug in the tree.

This reverts commit 4414d644a163f3906f90b35186e07ce0383161f4.
Fix hash_map.h on non-GNU C++ standard library implementations.
Merge pull request #930 from rburchell/revertfix

Revert "Fix an off-by-one on registration timeout handling."
Merge pull request #931 from SaberUK/insp20+fix-non-gnu-stl

Fix hash_map.h on non-GNU C++ standard library implementations.
m_ssl_openssl Clear the error queue before every SSL_* call
m_ssl_openssl Enable single (EC)DH use and disable SSL v2

Options enabled:
- SSL_OP_NO_SSLv2
- SSL_OP_SINGLE_DH_USE
- SSL_OP_SINGLE_ECDH_USE (if it exists)

Partial backport of #856 by @jvehent
m_ssl_openssl Disable session caching and session tickets
m_ssl_openssl Allow configuring raw OpenSSL context options
Fix various warnings when building with LLVM 3.5.

- warning: absolute value function 'abs' given an argument of type 'long' but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
- warning: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true [-Wundefined-bool-conversion]
Avoid calling methods on NULL pointers wherever possible.

The trick we use to allow this is undefined behaviour and is not
liked by LLVM. We should stop using it but it has the potential to
break to many things for a minor release.