text: Merge module-loader-3388
  Author: exarkun
  Reviewer: washort, therve
  Fixes: #3388
  Remove the error handling code from twisted.python.modules which
  attempted to reset sys.modules to its pre-import value when an
  import raised an exception. This logic could lead to duplicate
  instances of global state (one particular example being the running
  processes state when parts of PyCrypto? were not installed). The
  behavior only had value on Python 2.3, where Python itself did not
  remove modules which failed to import with an error from the modules
  dictionary. twisted.python.modules will now behave more similarly
  to import on all versions of Python.
  Site design
  By huw.wilkins.