Include Indigo and CDK support

A "structure2fps" command-line tool which uses metadata from an
existing fingerprint file to generate new fingerprints. The goal is to
support:
 structure2fps --reference targets.fps query.sdf | simsearch targets.fps

Add support for Tversky, Euclidean and other search
algorithms. (Tversky support is in the commercial version of chemfp.)

Add support for a "max_score" in doing searches. (This comes from
looking at Pipeline Pilot, which has a default upper limit of
0.999. But frankly, I'm not sure that's useful. I think the point is
to ignore identical hits, so perhaps that's the real requirement.)

Work on the pattern definition format. Should it have a distinction
between "unique" and "non-unique" matches? Eg, C=* with count >= 2
is the same as C=* (non-unique) with count >= 3, and the latter is
likely faster.

I think people will want a way to specify a pattern file as
input. Perhaps "--patterns"? How do I assign those a type name?

There should be some way to get a description of each set bit in the
pattern fingerprints.

What about a way to list all of the match atoms which go into a
different bit? That will take a lot of new code, and many of the
fingerprinters don't support it. Perhaps limit it to the pattern
fingerprints?

Add other fingerprints? Eg, the PaDEL substructure descriptors are
available as a list of SMARTS, and would be easy to add as a pattern
definition.
