Error in `requests.packages.__init__` (version > 2.5.1)

After update to requests 2.5.3 in my project I got such error. 

```
  File "/home/pavel/Python/projects/myproject/requests-2.5.3-py2.7.egg/requests/__init__.py", line 53, in <module>
    from .packages.urllib3.contrib import pyopenssl
  File "/tmp/easy_install-NUp7Qp/requests-2.5.3/requests/packages/__init__.py", line 49, in load_module
AttributeError: 'NoneType' object has no attribute 'modules'
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/lib/python2.7/multiprocessing/util.py", line 284, in _exit_function
    info('process shutting down')
TypeError: 'NoneType' object is not callable
Error in sys.exitfunc:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/lib/python2.7/multiprocessing/util.py", line 284, in _exit_function
    info('process shutting down')
TypeError: 'NoneType' object is not callable
```

As I understand it occurs because of adding copy of pip's machinery (https://github.com/kennethreitz/requests/commit/d61540551943df57aa0dece5e44e130309dcafec)


This isn't a bug in requests. [`sys.modules`](https://github.com/kennethreitz/requests/blob/461b740db6ae3d3ab1c5d975b657307f5c630fcb/requests/packages/__init__.py#L49) is something we should be able to expect to exist reasonably. The problem is that you're using multiprocessing and it is doing something bizarre to the `sys` module. Not only is it affecting `requests`, it's also affecting `atexit` which you'll not by:

``` py
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/lib/python2.7/multiprocessing/util.py", line 284, in _exit_function
    info('process shutting down')
TypeError: 'NoneType' object is not callable
```

and 

``` py
Error in sys.exitfunc:
Traceback (most recent call last):
  File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/lib/python2.7/multiprocessing/util.py", line 284, in _exit_function
    info('process shutting down')
TypeError: 'NoneType' object is not callable
```

So something is causing `sys` to be undefined in multiple contexts (my guess is the garbage collector) and not only is that negatively affecting requests, it's negatively affecting the standard library's `atexit`. pip's import machinery is not causing `sys` to be undefined.


I came across this issue as well when running integration tests in Python 2.7.  I was able to reproduce it with a simple test case:
https://github.com/sheppard/requests-test

It seems like it happens when setuptools downloads an egg file during tests, if requests isn't already installed.  Running the tests a second time usually works.  For Travis CI I was able to work around this by preinstalling requests before running the tests.


@sigmavirus24 What's the odds this is related to our import machinery?


I've seen this issue with both setuputils (via dependencies listed in tests_require=['requests']) and tox (using deps = ... in tox.ini)

```
18:06:49     import requests
18:06:49 .eggs/requests-2.5.2-py2.7.egg/requests/__init__.py:53: in <module>
18:06:49     from .packages.urllib3.contrib import pyopenssl
18:06:49 /tmp/easy_install-HlEuTN/requests-2.5.2/requests/packages/__init__.py:49: in load_module
18:06:49     ???
18:06:49 E   AttributeError: 'NoneType' object has no attribute 'modules'
```

Pinning requests to 2.5.0 fixed the issue with both tox and setuputils.


Seeing this too https://travis-ci.org/ckan/ckanapi/jobs/53942761#L177

Looks like the `packages/__init__.py` module is being deallocated (which can happen when something is messing with sys.modules). That causes all module-level globals to be set to None.  A possible workaround is to import sys inside the class to avoid the None-clobbering


@sigmavirus24 You've got more experience in this area than me. Thoughts?


/cc @dstufft 


@wardi did you test that solution or would you be willing to test it if I put it on a branch?