core_whowas Don't display used bytes in /STATS z

Calculating this is tricky and the calculation was not realistic
Split intrusive list implementation into a separate file
Make the name of intrusive list class configurable using a define
Add intrusive_list_tail container that maintains a pointer to the last element
core_whowas Create class WhoWas::Nick, store pointers to those in the map
core_whowas Delete elements of the per nick deque in the destructor of WhoWas::Nick
core_whowas Store time added in WhoWas::Nick
core_whowas Store the nickname in WhoWas::Nick
core_whowas Change the FIFO to be an intrusive list
core_whowas Switch from map to a hash map and from irc::string to std::string
core_whowas Rename misleading variables and typedefs
core_whowas Clean up GetStats()
core_whowas Split database logic into a WhoWas::Manager class
core_whowas Return a WhoWas::Manager::Stats struct from GetStats() instead of a string
core_whowas Rename and move WhoWasGroup to WhoWas::Entry
Move the definition of Timer::Timer() into the source file from the header

Use initialization list
Remove current time parameter of the Timer constructor
Move the TimerMap typedef into the private part of TimerManager
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.