man pmlookupdesc.3: correct pmUnits documentation

The scaleSpace and scaleTime have been unsigned:4 bitfields since
commit 1c5cb90d01 back in 2009.  Correcting the documentation to match.
PMAPI extension: pmParseUnitsStr

We introduce a function that reverses pmUnitsStr (and then some), so
that users can specify desired metric unit/scale conversions in
somewhat free-form textual form.  The API function looks like this:

     int pmParseUnitsStr(const char *, pmUnits *, double *)

where the latter two arguments are the results.  The first output is
what one would expect.  The last parameter is a final arithmetic
multiplier, which may be simply 1.0 for a straight pmUnitsStr() format
text, or is the appropriate factor to compensate for a user asking for
conversion of a quantity to

     "10 megabytes / 15 minutes"
qa for new pmParseUnitsStr() function

The tests include an exhaustive scan, round-tripping all valid
pmUnits() tuples through pmUnitsStr and back through pmParseUnitsStr.
("valid" excludes tuples with dim=0 but scale!=0.  Also, due to a
parsing ambiguity with count scale-vs-dimensions, the round-tripping
check is slightly adjusted for them.)

The 670 test also exhaustively tests all new keywords, and all
forcesable code paths (as guided by gcov output).  Floating point
calculations are all in double but rendered to default %g precision,
so should be accurate across platforms.  (Tested on linux x86-64).
man page for new pmParseUnitsStr() function
demo for pmParseUnitsStr: procmemstat.c

This little demo program now takes an optional -u "STRING", which lets
a user rescale numbers to units other than 'kbytes'.  The code now
also demonstrates nontrivial command line option handling patterns.
Add constants for defining the id's of each cluster.
Updated some of the metric descriptions.
Revert "debian/control: add dependency on time package"

This reverts commit c8fa3b5f389dd994a6c283123fdde62e993222d1.

Change was already done, this commit undid it, so revert that!!
add errMsg output for pmParseUnitsStr() function

Other pmParse* functions produce some descriptive text in case
of a parse error.  Let's start following suit.
pmParseUnitsStr whitespace work

Processed through GNU indent, with options approximating the pcp style:

 -nhnl -ut -br -i4 -il0 -cli4 -npcs -cbi0 -l120 -saf -sai -saw -cs
pmParseUnitsStr review tweaks

Handling issues as per brolley's review:
http://oss.sgi.com/pipermail/pcp/2014-December/006185.html
qa: correct output for 344 and 569 after container additions

Mea culpa - too many trees; didn't pick this failure up for a bit
longer than I'd like.  But then again, nor did anyone else. ;)  I
apologise if you came across these failures in the wild.
build: workaround benign cpuinfo compiler warning
qa: resolve qa/957 valgrind failure in hinv SCSI metrics

Be more careful about the situations in which we allocate
space for SCSI indom entries, esp. since these persist to
disk and might be shuffled on reboot.
libpcp_pmda - add pmdaInterfaceMoved() function

The recent change to e_ext_t replaced the int pmda_interface field
(held a PMDA_INTERFACE_N value) with a back pointer to the base of
the pmdaInterface struct.

It was believed that this structure was only manipulated within
libpcp_pmda, but co-incident and non-deterministic failures of
qa/628 led to some suspicion that this assertion was not correct.

The e_ext_t struct IS only manipulated within libpcp_pmda, but the
the associated pmdaInterface struct is created outside libpcp_pmda,
and the back pointer ONLY works if the pmdaInterface struct is NOT
moved or relocated.

For most PMDAs this is not a problem.  But pmcd sometimes will shuffle
and array of pmdaInterface structs and sometimes realloc the whole array,
thereby both moving AND relocating the pmdaInterface struct.

The new pmdaInterfaceMoved() routine re-establishes the back pointer
after a pmdaInterface struct is moved.

Also updated the man pages for pmdaDaemon() and pmdaDSO() to
document the caveat that the pmdaInterface struct passed by pointer
to these routines is not expected to be moved, and if it is moved
pmdaInterfaceMoved() is your new best friend.
pmcd - use link with -lpcp_pmda, use pmdaInterfaceMoved()

Accommodate changes in e_ext_t within libpcp_pmda so that pmcd
actions juggling pmdaInterface structs do not break the behaviour
of DSO PMDAs.
qa/628: more diags, wait properly in _cleanup()
build: resolve compiler warning from cgroups blkio code

Remove some left-over unused code from an earlier blkio
implementation, causing this with recent gcc variants -
cgroups.c: In function ‘read_blkio_devices_stats’:
cgroups.c:744:16: warning: variable ‘result’ set but not used [-Wunused-but-set-variable]
     __uint64_t result = 0;

Extend the gitignore file for the proc PMDA while there.
Merge branch 'dev' of git://git.performancecopilot.org/pcp/pcp into dev

Conflicts:
	src/libpcp_pmda/src/exports
pmParseUnitsStr: switch from c99 "//" comments to c72 "/* */".