Macros: fix of invalid free for TOTALHOSTSERVICES* macros

The $TOTALHOSTSERVICES*$ macros were computed all at the same time, with the
result stashed in mac->x using the mkstr method (from worker.c? why worker.c?)

The mkstr uses an static internal buffer of usally 256 strings, of each 32
bytes, for generation of strings, used in macros. When computing
TOTALHOSTSERVICES*, the valuse is, as said, stashed in mac->x[], which is freed
 at cleanup, with some exceptions, and this isn't one of them.

Those needs to be exceptions, so static function variables isn't freed

Signed-off-by: Max Sikström <msikstrom@op5.com>
Signed-off-by: Andreas Ericsson <ae@op5.se>
worker manager: Introduce wproc_run_callback()

This lets modules run checks and external helper commands without
them necessarily passing through Nagios check-handling routines,
which was earlier the only way modules could see the result of the
external command they wished to run.

It's also neat in that it allows one to write a small module that
manually tests a particular command by using Nagios' internal escaping
mechanisms, which can be incredibly handy when configuring commands
that look more like awk scripts than normal unix commands.

Original-patch-by: Max Sikström <msikstrom@op5.com>
Signed-off-by: Andreas Ericsson <ae@op5.se>