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
Did you mean to use max_line_length round about here, to pad the line with ?
It's presently unused ...

As noted in the canteen, however, appending the zone on the end of the line is not ideal.  Better would be to identify the  banner line, find the offset in it of the CMD or COMMAND field, insert "ZONE" in a field of width MAX_ZONENAME_SIZE + 1 before it, then insert the actual zone names in same-sized fields at the same offset in all later lines, checking that this offset does appear in space (i.e. not in the middle of another field); the +1 is for another space, as column separator.  You'll need a
```
const char zonefmt[PRINTSIZE(int) + 3]; /* 3 for " %s", PRINTSIZE takes care of the digits and trailing '\0'. */
sprintf(zonefmt, " %%%ds", MAX_ZONENAME_SIZE);
```
with which to format "ZONE" in the banner line and the zone in each later line.  Use that to fill a buffer of size MAX_ZONENAME_SIZE in each case, that you insert into the line.