Make egg_info command write out setup requirements

This commit makes the egg_info command write out setup requirements as well
as install requirements, setup requirements are written to a
setup_requires.txt file.

The commit adds a new function write_setup_requirements which uses the
existing _write_requirements function to write setup requirements out to a file
and adds a new entry point to the egg_info.writers group.
Update docs to reflect new behavior.
Merge pull request #106 from Richard Ipsum.
Update changelog
Update documentation to reflect new function.
Added tag 8.4 for changeset 921e60a0f906
Bumped to 8.5 in preparation for next release.
Extract sandboxing context as a series of encapsulated contexts.
Update docs about bootstrap script.
Remove setup_requirements writer from metadata. Fixes #314.
Update changelog
Remove setuptools modules from sys.modules before invoking setup script. Fixes #315.
Extract function for _clear_modules, encapsulating the need for the module names to be greedily evaluated before removing them.
Update changelog
Include distutils in modules hidden
Correct docstring
Rename function to match intention.
Disable purging of distutils/setuptools during sandbox operations. Ref #315.
Merge with master