Fix #860 in Moldenformat by removing two unnecessary getlines, which meant only every other atom was read.
Identify frequencies with header

In the VASP format, frequency parsing was done until tokenization
returned less than two elements.  However, the list of displacements may
be closed with a section such as the following:

	Finite differences POTIM=  2.000000000000000E-002
	LATTYP: Found a simple tetragonal cell.
	ALAT       =    12.7378929000
	C/A-ratio  =     2.5701183985

	Lattice vectors:

that would not break from the frequency-parsing loop and keep parsing
nonexisting data, eventually leading to a crash.

Instead of breaking the loop on 'less than two tokens', we check whether
the header contains one of 'f/i=' or 'f', if it does not, we break
the loop.
Fix normal mode parsing in Gaussian format

This fixes a bug in the parsing of normal modes in the Gaussian format
where values in a single column would not be parsed at all. This could
make openbabel crash in some cases.

The normal modes in the gaussian format are presented in stacked groups
of five columns.

 Atom AN      X      Y      Z        X      Y      Z        X      Y      Z
   1   6    -0.14   0.87   0.00     0.87   0.14   0.00     0.00   0.00   0.00
   2   8     0.05  -0.33   0.00    -0.33  -0.05   0.00     0.00   0.00   0.71
   3   8     0.05  -0.33   0.00    -0.33  -0.05   0.00     0.00   0.00  -0.71

The algorithm would parse the normal modes until `vs` contains less than
5 token. However, if the last set of normal modes is in a single column:

 Atom AN      X      Y      Z
   1   6     0.00   0.00   0.88
   2   8     0.00   0.00  -0.33
   3   8     0.00   0.00  -0.33

The size of `vs` actually is 5, breaking the parsing loop early, and
eventually crashing openbabel.

Parsing normal modes until the columns are 'less than or equal to 5'
tokens fixes it.
Compute vibration intensities for VASP format

The vibration intensities are not explicitely present in VASP output but
can be computed from the changes of dipole moments and the normal
coordinates.

Christian Neiss (FAU Erlangen Nürnberg) wrote the Python script that
served as the basis for this patch.
Fix possible division by zero