Use averaged bond order corrections from Pyykko and Atsumi 2009.

Slight modifications from previous versions, but likely better
overall, since they're systematically derived.
Add a threshold to single fragment scaling
Merge branch 'master' of github.com:openbabel/openbabel
Update comment
Updated abs() -> fabs()
setup.py now 2/3 compatible
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.
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.
Merge pull request #101 from Synss/vasp

Identify frequencies with header
Merge pull request #100 from Synss/gauss

Fix normal mode parsing in Gaussian format
STL-like iterator protocol for vector3

Providing iterator and const_iterator typedefs as well as begin() and
end() methods allow using vector3 with STL algorithms like `for_each` or
`find_if`.
Add CO2H to superatom.txt

I note that CO2H is in osra, just in spelling.txt instead of superatom
Merge pull request #103 from cowsandmilk/CO2H

Add CO2H to superatom.txt
Merge pull request #102 from Synss/vector3-iterators

STL-like iterator protocol for vector3
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.
Parse HND1 etc atoms in DUD-E

Dock 3.7 receptor files contain HND1 etc atoms, parse them correctly.
Fix a performance problem with parsing PDB files that have overlapping
fragments in them.  Since the fragments overlap, ConnectTheDots adds a
ton of bonds, most of which then need to be deleted (really shouldn't add any
considering there are connect records..).  The problem is that each
call to DeleteBond triggered a re-perception since it calls EndModify.

The fix is just to wrap the whole code in Being/EndModify.
The reduces the time to parse the PDB file from minutes/hours to less than a second.
Merge pull request #106 from dkoes/upstream

Fix a performance problem with parsing PDB files that have overlapping
Merge pull request #97 from mwojcikowski/master

Parse HND1 etc atoms in DUD-E
Merge pull request #94 from leeping/master

Add a threshold to single fragment scaling