m_ojoin Leave it to the core throw an exception if the prefix char is in use
m_ojoin Change allocation of NetworkPrefix to be physically part of the object containing it
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.
Miscellaneous improvements to configure.

- Clean up various minor sections of the code.
- 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.
Improve configure cache file handling.

- Add a version number to the configure cache file.
- Disable configure cache file in non-interactive mode.
- Rename configure cache file to .configure.cache to avoid 2.0 files.
- Use run_test to produce the "reading .configure.cache" message.
Improve build system 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.
Move common code to make::common from make::utilities.

The other code in that file will be removed very soon so it has
been left alone to avoid merge conflicts.

This will help prevent insp20 merge conflicts in the future.
Fix warnings in m_ssl_openssl about the use of `long long` on C++03.
Fix builds on OpenBSD spamming the console with warnings.