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.
Added tag 8.3 for changeset cd14b2a72e51
Bumped to 8.4 in preparation for next release.
Move api_tests to pkg_resources package. Fixes #312.
Update API docs to reflect relocation of pkg_resources from module to package.
Include api_tests.txt in pytest invocation. Ref #312. Ref #311.
Merge inclusion of api_tests.txt.
Update documentation on release frequency.
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.