Modularize, clean up, and test docker build environments

This modularizes the docker build commands into an environment class to track
the state of the version passed in. Eventually, this will allow for reporting
against the version instance on a per-command basis.

This drops `build.json` output to pass in json on stdin/stdout when calling the
docker run management command. Docker configuration of django settings is now
done with a separate settings file, which allows for override by environment
variables via any variable with the prefix `RTD_DOCKER_`. This allows for
configuration of django inside docker without a customized docker build for
every environment.

Some supporting changes include API serializers that return all instance fields
and removing api access to the sphinx context backend.
Update docs
Fix failing test
Lint on docker mgmt command
Alter docker mgmt command for mocking in tests
Add tests for run docker mgmt command
Fix media url settings in docker
Merge branch 'docker-cleanup' into staging

Conflicts:
	readthedocs/doc_builder/environments.py
	readthedocs/restapi/serializers.py