factory call with interface
QueryChemObject now requires a IChemObject builder when being constructed. This has a knock on effect that all the SMARTs atoms require the builder also. Although there are a lot of changes there's little front end API changes - the SMARTSQueryTool and PubChemFingerprinter now require a builder. Descriptors that require a builder will need updating (next patch).
allow DescriptorEngine to load the two descriptors that require an IChemObjectBuilder injection. DescriptorTest was updated and generiffied to allow testing of the modified descriptors.
resolved two regressions in builder3d due to null field values
using reflection to correct unit test. Unit test order is non certain and so in this test the template may already be loaded (fail) - to avoid this we use reflection to create a new non-singleton instance and to excite the private loading of templates.
resolved three unit test errors in cdk-builder3d, due to the SINGLE_OR_DOUBLE flag which if not erased was leading to different atom types and thus fingerprints when searching for templates.
replaced manipulator produce anonymous structures - the new method avoids cloning so all values will always be default and avoids issues from the previous commit
corrected assertion, refer to data added in: commit deebfaba04
corrected assertion to compare correct values, an IBitFingerprint (7004511a2b) cannot be comapred with an BitSet
updated unit test assertions to match the fingerprinter that was changed in b27ee124bb
corrected caught exception, this exception changed in commit: 1ef89fb0
fixup