PTFM-11008 Better encoding handling on pypy/pip installations.
Coerce format to unicode
Fix compiler warnings and various cosmetic fixes

* MAPPER instance in DXObject can be used by all subclasses
* Declare methods as static where possible
* Eliminate unneeded nesting
* Don't assign to parameters
* Remove unneeded "throws" declarations
Run tests that rely on newly released features.
Unicode fixups following 57023cd9
Move UA version to its own file.
Introduce compatibility methods for getting/setting env vars.

Introduces two new methods:

* dxpy.compat.get_env_var(name, default=None) => unicode

* dxpy.compat.set_env_var(name, value)

  value may be bytes or unicode in python2 but must be unicode in
  python3.
Prevent temp file pollution in "dx get" test.

Also refactor to use context-managed chdir in a few other places.
Use system encoding instead of utf-8 when en/decoding env vars.
Fix crash when current folder is not set
PTFM-11451: no warning printed for dx run --brief (for special permissions)
PTFM-5226 Document exit code conventions and solicit bug reports.
Temporarily returning to the system encoding reset hack; work on unicode handling migration will continue in the python-encoding-migration branch
Add csh and tcsh support to the environment file
Reset response to None so that retry logic doesn't get state from the previous response if the new request throws.
Remove redundant assignment following 90c3c61
Make testutil relative imports Python 3 compatible
Python 3 syntax fixes
Don't repeat exception name if it's redundant; pretty-print exception details
dx: Suggest --force when updating incompatible stage executable