WIP: 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.