Fix crash reading malformed config files

If ConfigParser::QuotedOrToEol() happend to return NULL. Which may happen
if there is no token before end of current file the auth module config
parser would crash.

  Detected by Coverity Scan. Issue 1222662.
Fix various null dereferences

Fairly rare occurances hard to hit but still possible. Any one of these
could crash Squid in their particular circumstances.

  Detected by Coverity Scan. Issue 1187972, 1187973, 1232097, 1241502.
Cleanup: convert external_acl_format to ref-counted pooled object

CBDATA was used as a makeshift way to memory pool and ref-count these
objects. Do it properly now.
Cleanup: use SBuf::npos instead of npos in SBuf::append()

Small experiment. It is possible on some systems that std::npos / ::npos
is defined with a different integer size and value.
This may be what is confusing Coverity scan and producing buffer overrun
alerts in the append() c-string with default parameter case.
Cleanup: fix various uninitialized class members

Also, simplify some destructors. xfree() is faster than
safe_free() and both are ok in a destructor.

  Detected by Coverity Scan. Issue 971423, 1135444, 1135445,
    1231353, 1231354, 1231355, 1231356, 1234503, 1241504,
    740531, 740566
Cleanup: fix various uninitialized class members

Also, simplify some destructors. xfree() is faster than
safe_free() and both are ok in a destructor.

  Detected by Coverity Scan. Issue 740527, 740532, 740533,
    740534, 740563, 1241964
Cleanup: convert AuthUserIP from CBDATA to MEMPROXY class

This object was not needing to be passed as callback arguments
but was using CBDATA type to gain memory pooling.

Converting to the correct pooling mechanism removes some more
uses of cbdataFree() and ensures the object and its members
destructors are called properly.
Polish: cleanup IDENT header
Windows: getppid() is not supported.

The PID and thus parent process PID concept is not available in Windows
and MinGW at least lacks the API mechanism.

This may re-open an issue with kid processes notifying the coordinator
when they are shutting down. If so we need to find an alternative
mechanism to replace this use of kill(getppid(), SIGUSR1)
Polish peek-and-splice related code

 - Record SSL bump action at each bumping step in the Ssl::ServerBump.
   The new Ssl::ServerBump::act member added for this purpose.

 - Split Ssl::PeerConnector::checkForPeekAndSplice  to two methods
   (checkForPeekAndSplice and checkForPeekAndSpliceDone) add some
   documentation, and polish the code.

 - Polish  httpsSslBumpStep2AccessCheckDone function (client_side.cc file)

This is a Measurement Factory project
Polish peek-and-splice related code part2

- Record SSL bump action in Ssl::ServerBump::act at step3
Portability: provide xstatvfs() shim for system call statvfs()

statfs() and struct statfs have been deprecated for years. Hoewver the
POSIX statvfs replacements are still not universally available.

Remove deprecated statfs() and struct statfs usage from Squid. Although
they may still be used by the xstatvfs() compatibility wrapper if they
are the only available API.
Add missing boilerplate for rev.13621
Windows: add missing file permission definitions

* initgroups() shim was building, but header not included correctly.

* POSIX 5.6 / 6.5 Protection Bits for group access do not exist in
  windows MinGW. Define as 0-bits until better API is found.
Fix --enable-win32-service compile errors
Windows: remove alternative main()

As a side effect this causes Windows builds to use the wrapper function
for handling exceptions.
Fix library dependency issue in rev.13604

TODO: build true library dependency map and re-order all LDADD
statements according to the hierarchy found.
Remove C++11'ism in rev.13604

We are not quite going to require C++11 yet. Revert Helper::ChildConfig
default constructor to C++03 syntax.