Move dependencies into setup.py

This uses extras_require so they are not automatically installed, but easily can be.
requirements.txt refers to these extras, so 'pip install -r requirements.txt' does the right
thing for a 'full' development environment including documentation and testing libraries

[ci skip]