sslcrtd_program: Use (more) Squid-wide APIs (#1021)
This switch allows us to use Squid-native debugging and error handling
code in ssl/libsslutil.la. Such use is necessary to fix and enhance
certificate handling code currently located in that library. For now, we
only did straightforward adjustments like fixing parseBytesOptionValue()
and Ssl::CrtdMessage::parseRequest() error detection/handling. More
serious changes deserve dedicated PRs.
This change also converts the remaining bare std::runtime_error uses in
runtime Squid code and almost all std::cerr uses in sslcrtd_program:
* std::runtime_error: TextException provides the source code location of
the thrower and will be enhanced along with Squid improvements.
* std::cerr: debugs() provides much better runtime logging, on many
levels. The usage() dump still uses std::cerr because debugs()
decorations are not useful in that special case and because, IMO, that
case should be using std::cout instead (it is not reporting an error).
Removing STL APIs (that have Squid-native alternatives) from the old
helper code also reduces the temptation to use wrong APIs in new code,
especially when authors are not familiar with Squid conventions/plans.
Also replaced sslcrtd_program's `Here` hack with SourceLocation.
Also report all started helpers (at debug level 2) because a successful
helper start is a significant event worth reporting (when level-2
debugging is enabled) across all helpers.