extend Solaris ps output to include unrestricted command length and append zone info 

Commit contains these squashed commits:

commit 81f19834f5a8c889a3ca00e8054188253bc73c10
Author: Matthew Cattell <matthew.cattell@cfengine.com>
Date:   Fri Jun 20 00:43:27 2014 +0200

    make sure zone header shows and ensure zone name appended to end of line

commit de8518c7fb75582063a26bcc4d6c5160d6ede1ac
Author: Matthew Cattell <matthew.cattell@cfengine.com>
Date:   Fri Jun 20 00:31:26 2014 +0200

    add zones wrapper to get zone name

commit 8687a20ebd3750fff66c77e683b29138e1e60d10
Author: Matthew Cattell <matthew.cattell@cfengine.com>
Date:   Fri Jun 20 00:27:41 2014 +0200

    add zone column to end of ps output
Potential buffer overflow. You are not guaranteed that ``vbuff`` has any extra space in it. The easiest fix is to use ``xasprintf`` instead, which will allocate enough space in the given pointer. But then you need to print ``vbuff`` into it as well, since it will be a new buffer. And it needs to be free'd, of course. So something along the lines of:

<pre>
char *new_vbuff = NULL;
if (strstr(vbuff, "PID"))
{
    xasprintf(&new_vbuff, "%s %-*s", vbuff, max_line_length, "ZONE");
}
else
{
    char zone[64]; /*same as ZONENAME_MAX in zone.h*/
    if (CurrentZoneName(zone) < 0)
    {
        Log(LOG_LEVEL_ERR, "Unable to obtain zone name. (fread: %s)", GetErrorStr());
    }
    xasprintf(&new_vbuff, "%s %-*s", vbuff, strlen(zone), zone);
}
free(vbuff);
vbuff = new_vbuff;
</pre>