Designate some dependencies as optional

Split `requirements.txt` into two files:

* requirements.txt
* requirements-optional.txt
Merge pull request #871 from Ichimonji10/requirements

Designate some dependencies as optional
Deduplicate and rewrite documentation

The readme file is essentially duplicated. Highly similar content exists at both
`README.md` and `docs/index.rst`. This is problematic: it's hard to maintain two
copies of similar documentation. This makes it easy for errors to creep in, and
demotivates developers from writing documentation. Additionally, the
documentation in the readme could use more polish.

This commit contains the following changes:

* Delete README.md, and create a sylink pointing from README.rst to
  docs/index.rst.
* Rewrite docs/index.rst. Make it include the information formerly provided
  by README.md, add a link to the docs/createtest.rst file, and generally
  rewrite the file to be easier to read.
Reformat text

Adhere to an 80-character width limit where reasonable.