m_ssl_openssl Read the DH params file using the BIO API on all OSes
m_spanningtree Update nick overrule on UID code to make sense on master
m_spanningtree Let the NICK handler change the nick of the incoming user on collision

Don't change it in DoCollision()
m_spanningtree Update comments around collision handling
m_spanningtree Replace #defines with references in DoCollision()
m_spanningtree Replace WriteLine() call with Unicast() in DoCollision()
m_spanningtree Return a bool from DoCollision()

The return value is true if the remote user or both have to change, false if only we have to change
m_spanningtree Don't accept NICK with 0 TS
m_spanningtree Only accept uuids in SAVE
m_spanningtree Warn instead of sending SAVE if we change the nick of a non-local user outside of a command handler
m_spanningtree Set the TS of the uuid nick to the same value on collision
m_spanningtree Remove duplicated code from TreeSocket::Outbound_Reply_Server()

This is implemented in CheckDuplicate()
m_spanningtree Deduplicate auth finish code
m_spanningtree Deduplicate server auth code
m_spanningtree Don't pointlessly copy strings in SERVER handlers
Various improvements to configure.

- Clean up various minor sections of the code.
- Improve compiler detection.
  - Check the CXX environment variable inside find_compiler instead
    of doing it separately.
  - Use a test file instead of checking for version output. This
    ensures we are using a working compiler.
  - Pipe the output through run_test which makes debugging problems
    considerably easier.
  - Detect Xcode versions of Clang properly by returning the LLVM
    version number instead of the Xcode one.
- Remove OpenSSL and GnuTLS detection plumbing.
  - This will soon be the job of modulemanager.
  - This did not work in non-interactive mode unlike --enable-extras.
- Add the --gid configuration option.
- Rework the question flow in interactive mode.
  - User is no longer asked detailed questions unless they want them.
  - Socket engine questions have been removed.
- Automatically enable non-interactive mode if STDIN or STDOUT are not
  a tty.
- Fix OpenBSD builds spamming warnings about system headers.
- Add Perl module for console related code.
  - Move prompt methods to this module
  - Add methods for printing errors and warnings easily.
  - Add colour code helpers and switch all code to use them.
- Rename configure cache file to .configure.cache to avoid 2.0 files.
- Disable configure cache file in non-interactive mode.