Code cleanup, addition of a general descriptors method, and addition of ctab2svg

I had some time on my hands on the train yesterday so I spent some time on beaker.

The changes are as follows:
- There was a fair amount of duplicate code: the two implementations of each function shared most of their code. I pulled these out into separate helper functions.
- I added a generic descriptor function that by default generates all of the RDKit descriptors but which takes an optional comma-separated list of descriptor names
- I added a smiles2image function. It's convenient to not have to go through a ctab if you want an image of a SMILES
- I added ctab2svg and smiles2svg. These only work if cairo is installed and require some functionality I just added to the rdkit trunk, but I think it's nice to be able to go directly to svg.