Implement aggregate datapoints and migrate to python collector

* Migrate CalcPerf datapoints to a PythonCollector implementation, removing zencalcperfd.
* Merge in all of AggregatingCollector ZenPack:
   - New 'ElementPool' component type that provides a virtual component composed of any arbitrary other devices or components, usable by other ZenPacks to implement instances of:
   - 'Datapoint Aggregator' type datasource that will apply an aggregation operation to the same target datapoint collected from all devices/components generated by the target method.
   - Topological sorting of datapoint collection so that aggregates-of-aggregates, aggregates-of-calculations, and calculations-of-aggregates all complete with a single collection cycle delay no matter how many levels of aggregation and calculation are involved. (This is per-device and per-cycletime.)