Add documentation for datasources

Documentation taken from python API documentation, source code, and
reading through issues

Could use a read-through to double-check that it's right