improve documentation surrounding optional deps

This makes the optional deps strict.

I have left the packages required to use the core dataypes in `setup.py` everything else has gone.