Extras require 3696

Use extras_require from setuptools to handle optional dependencies.

Add documentation detailing how to use feature.