Extract subsystem accessing into pmsubsys.py.

* pmcollectl.py (subsys, cpu, interrupt, disk, memory, net): Move
  to pmsubsys.py.  Move most of the class machinery to pmsubsys.
* pmsubsys.py: New.
Add pmatop.py.

* pmsubsys.py (pmsubsys): Rename metric_name to metric_pmids,
  metric_desc to metric_descs, metric_value to metric_values. Remove
  is_implemented.
* pmatop.py: Initial version.
Add pmatop.py.

* pmsubsys.py (pmsubsys): Rename metric_name to metric_pmids,
  metric_desc to metric_descs, metric_value to metric_values. Remove
  is_implemented.
* pmatop.py: Initial version.
Improve pmatop.py output formatting.

* pmatop.py (_*_print): Output one metric per addstr call.
* pmsubsys.py (_pmsubsys):  Handle PM_TYPE_STRING.
Improve pmatop.py output formatting.

Merge branch 'dev' into scox/dev
Experimental changes to support a pcp python package (!module)
Make the python PMI module and test code pylint-clean
Add the PMDA macros into the python pcp dictionary

Mainly pmda cache control operations, and also fetch callback
return codes for good measure.  At this stage, chose not to
expose the API versioning macros, doesn't seem to make sense.

Along with this change, added 3 forward type declarations into
pmda.h so that impl.h does not *have* to be included by source
that wishes to make use of the pmda.h header.
Move the python C code back into the base python directory

It really doesn't seem to want to play ball with module naming,
so just put it back to avoid the strangeness of having to add
the pcp/ prefix explicity into setup.py.
Merge branch 'dev' into nathans
Remove accidental use of anonymous hash in pmdaelasticsearch
Further namespace trickery to get clean header separation

Earlier commit didnt quite work, so now making use of a neat
trick I recently picked up from Dave about using a typedef
with the same name as the associated struct.

Also removed the very poorly named "pn_s" struct from impl.h
and replaced it with the same scheme.  Very slight risk of a
3rd party build fallout as a result, but I seriously doubt it
and leaving it seems more likely to cause a conflict someday.
Correct an issue in the perl implementation of pmdasimple

Found while looking into addition of the python PMDA module.

The timeslices hash was not been manipulated correctly, hence
the perl implementation was not correctly handling updates to
the simple.conf file.

QA test 715 now exercises this area.
Correct an issue in the pmdasimple help text file

Found while looking into addition of the python PMDA module.

The indom numbering for the color and time indoms were not
zero-indexed as they should be, but rather were indexed from
one on.  This numbering is zero-based for both the C and perl
implementations.

QA test 716 now exercises this area, as well as adding further
checking to the descriptor handling in the perl implemenation.
Add initial python PMDA module checkout via pmdasimple.py

Adds test 717 and 718 to exercise various aspects of a real
python PMDA installation (via pmdasimple.py) and responses
to various PDU requests.
Prepare potentially affected QA tests for arrival of python PMDAs
Update gitignore file for local pmdasimple shlib build
Initial implementation of pmdasimple in python

Updates to the install and build processes to support python
PMDAs in general, plus initial version of the simple PMDA as
a python script.
Further work toward clean namespace separation on python modules

Rename a couple of the modules within the pcp python package so
that cleaner importing is achieved (pylint-clean in particular).
This scheme allows us to avoid wildcard imports on pcp modules,
which pylint dislikes greatly.

The existing pcp.py module is split here into separate modules
for each of the shared libraries (libpcp, libpcp_gui and recently
libpcp_import are now in separate modules).  Initial work toward
cleaning the GUI and PMI modules has been undertaken, and they're
now alot closer to clean (but not quite 100% yet).

The two python PMI test programs below qa/src are now 100% pylint
clean.  PMAPI (and test_pcp.py) remain areas of need in QA, and
pmcollectl.py, pmapi.py, pmcc.py still need extensive work until
pylint is happy (left for now though to avoid overlapping change
with WIP from others).

Renamed the "pcpi" module to "pmcc" for consistency with others,
and to match the "convenience classes" name used in the source.
Python PMDA fixes/updates after recent module reorganisation