Designate some dependencies as optional

Split `requirements.txt` into two files:

* requirements.txt
* requirements-optional.txt

Note that, in this merge request, I am not updating the documentation to reflect this change. If this pull request is accepted, I'll rebase my "docs" branch and make some relevant changes there.