Polish the testing process

Change how Travis executes tests:

* Make Travis install requirements from `requirements-optional.txt`. Formerly,
  Travis would install a set of requirements listed in `.travis.yml`.
* Make Travis run unit tests, collect coverage statistics and run doctests by
  calling make. Formerly, Travis executed unit tests and collected coverage
  statistics by executing a command listed in `.travis.yml`, and Travis did not
  execute doctests at all.

Update the makefile to support these changes.

* Add the command `test-all`.
* Trim down the command `test`.

Drop `docs/requirements.txt`, as it appears to be useless. Add
`requirements.txt`.

Flesh out the contribution guidelines in the readme.