Created new class-based implementation of the VF2 algorithm.

The use of a class lets us store some variables as attributes, so we don't
have to keep passing them around as parameters. It also offers a cleaner
API that encapsulates the details of calling the algorithm inside the
class.

I don't expect a significant speed change from this commit.
Fixed version of Molecule.getFormula().

The previous implementation would print a 1 for atoms that only appear
once in the molecule, e.g. C3H6O1 instead of C3H6O.