pmdaprometheus: add support for label filtering in URL configs
pmdaprometheus: add support for label filtering in URL configs

This adds support for label filtering in URL configs. This filtering
applies to all metrics returned by a particular end-point. There is
no support for global label filtering - you'd have to add the desired
FILTER: rules to all config files for this.

It extends the existing syntax for metric filtering. FILTER: lines
in config files can now specify whether to include / exclude labels
based on regex matches on the label name (label values are NOT subject
to filtering .. not yet anyway). e.g.

FILTER: INCLUDE LABEL regex
FILTER: EXCLUDE LABEL .*

The above filter sequence will delete all labels that do not match
the regex for all metrics returned by the URL specified in the same
config file.  The rules are the same as for metric label filtering,
i.e.  first match prevails. No match implies the label will be included
(so there is an implicit final rule is "FILTER: INCLUDE LABEL .*"
but obiously this can be completely overridden like in the above
example.

There are a couple of semantic peculiarities that will be documented
in the man page update. e.g. if all labels for a particular metric
are excluded, the metric becomes singular (has no instance domain).
If certain labels are excluded so that two or more instances end up
with the same labelset (aka instance name), then the last defined
instance prevails for that metric and the others are dropped, with
a message indicating this in the log. The instance ordering is whatever
is returned by the end-point URL - no prior sorting is applied.

Still TODO:
	qa/1306 has been reserved
	pmdaprometheus(1) update
	support for marking labels as "optional" (for pmseries)
	support for adding new labels for all metrics in a config
	support for label value filtering (if needed)
	performance testing

adfernandes/pcp,adfernandes/pcp,adfernandes/pcp,adfernandes/pcp,adfernandes/pcp,adfernandes/pcp,adfernandes/pcp,adfernandes/pcp