* Correct AmoebaAngleTorsion in test_Amoeba18Nucleic of TestForceField
* Update processTinkerForceField to handle latest .prm Tinker files
* Update amoeba2018 XML files
* Update amoeba2013 XML files
* Update amoeba2009 XML files
* Adapt addTorTor to new format in the .prm files
* Fix TorsionTorsion
* Also update the total energy in test_Amoeba18Nucleic
* Update amoebabio18.prm
* Fix nucleic acid test energies
* Correct AmoebaAngleTorsionForce params
* Add new addTorTor to TinkerFiles
* Revert unit fix
* Change to .pdb file which Tinker likes
* Update test_Amoeba18BPTI
* Remove trailing zeros from XML files
* Leave trailing zeros only on 2018 ff
* New element names in 2018
* More digits for surfaceAreaFactor
* More digits for surfaceAreaFactor
* More digits
* Remove debugging print
* Add support to 2009 and 2013 AMOEBA ffs to processTinkerForceField.py
* Add FF specific residues XML files
* Delete old residuesFinal.xml
* Update AMOEBA XML ffs
* Update FFs
* Fix some formatting issues
* Fix "." in scientific notation
* Remove old assertions
* Adding support for new AMOEBA features
* Support modern method of specifying in-plane angles
* Implemented stretch-torsions
* Implemented angle-torsions
* More AMOEBA fixes
* Bug fix
* Converted AMOEBA 2018 force field
* Added documentation for AMOEBA 2018
* Added a missing file for tests
* Use list-comprehension in Python code
A minor change, but slighly easier to understand the initialization of
`parent_exclude_list` in my opinion.
* Implement __ne__ in Python classes that has __eq__
In Python 3, `__ne__` is automatically implemented as `not __eq__`.
However, in Python 2 it seems to be implemented as `not is` (so based on object
identity).
Based on setup.py [0] which says that "OpenMM requires Python 2.7 or better", it
should be useful to have better support for Python 2 :)
This was already done in 4 of the 12 classes that implements `__eq__`
```
>>> class WildCard(object):
... def __eq__(self, other): return True
>>> w = WildCard()
>>> w == 42
True
>>> w != 42
True
>>> w != w
False
```
[0]: 5cef29ce8d/wrappers/python/setup.py (L237)
* Use umambiguous floor division for index calculations in Python
This makes the code work as intended if run as Python 3
```
$ python2 -c 'print(3/2, 3//2)'
(1, 1)
$ python3 -c 'print(3/2, 3//2)'
1.5 1
```
* Use `with` for file handling in Python
* Use `is None` instead of `== None` in Python
This is recommended in PEP8:
> Comparisons to singletons like None should always be done with is or is not, never the equality operators.
> - https://www.python.org/dev/peps/pep-0008/#programming-recommendations