Use urlretrieve to smartly download PDB archives

Reading the entire contents into memory with urlopen is a bad idea. With
large crystal structures, it can result in saving an incomplete .gz
archive (raising an Exception on retrieve_pdb_file). Let urllib handle
downloading the file instead.
Use 'with' statement for safer file I/O

Many of the modified functions may be obsolete at this point, but
they're converted to use the more compact, safe 'with' statement. In
Python 2, urllib2.urlopen doesn't implement the 'with' statement, so we
temporarily use contextlib to force this until transition to Python 3.
Collapse unwieldy if-else structure
PEP8 fixes within retrieve_pdb_file

No functional changes, just readability fixes.
Remove deprecated parameters

Obsolete parameters (which were rarely specified by users anyway) gave
warnings in version 1.57. They should be able to be safely removed now.
Update with clarifying comments
PEP8 fixes, updated comments for file

Does not functionally change code, only adds appropriate spacing,
updates comments where applicable.
Use urlretrieve in other instance of save to disk
Import with_statement for backwards compatibility
Nest one-lined with statements

Evidently, the comma syntax for two with statements is a Python 2.7
feature.