Re-apply the Py3 support commit.
Merge branch 'master' into py3-support
Defining __eq__ in Python 3 destroys hashability, which means that Atom objects
can't be added to sets.  Since __eq__ isn't currently used anywhere, make __eq__
more strict again by eliminating it (effectively making == the same as "is"
again).
Remove the __eq__ methods from tinkertopology as well.
More Py3 fixes.
More Py3 compatibility changes -- decode bytes object from scipy NetCDF parser
More Py3 compatibility (file is no longer a thing in Python3 -- import FileIO
from the io module to replace it).
- Convert scripts as well so I don't have to use Py2-3-compatible code in them.
- Skip the has_key fixer, since it breaks my ArgumentList class (and I don't use
  has_key anywhere else)
- Make the Atom class in charmm/topologyobjects orderable
Don't have BookmarkedFile inherit from file -- that doesn't work in Python 3.
Have it store a stream object and operate on that as though it's a file.
In Py3, lines from a gzip.GzipFile or bzip2.BZ2File are returned as bytes, and
need to be decoded as ASCII in order to be parsed.  So handle the case where PDB
files need to be decoded or not.
Do not open files unbuffered, since the buffers are flushed after each write and
Python3 does not allow you to open text files with no buffer (only raw binary
files can be opened that way).
Merge pull request #3 from swails/py3-support

Py3 support