Reluctantly expose more of the CDK descriptor architecture

Each descriptor class in CDK can calculate more than one 'descriptor'.
We now return the array of result names for each class, and the array
of corresponding values for that desciptor applied to a given molecule.
Also add the result type and monkey with the descriptor attribute
names.
Support ECFP6 and FCFP6 fingerprints

The values are returned as objects/hashmaps where the keys are the
fingerprint hash codes, and the values are the counts.