Made QueryChemObject require 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 but other methods (e.g. descriptors and QueryAtomContainerCreator) could make use of the builder from other IChemObjects.

Change-Id: I64a6d7a3450ad1ad9b684d3679a11ace293e58fa
Signed-off-by: Egon Willighagen <egonw@users.sourceforge.net>