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
Revert "Make testutil relative imports Python 3 compatible"

This reverts commit ffcc4d39ec9661af3e778c7b796a983ddc1d7c20.
PTFM-10996 Cache describe output and read it in listxattr/getxattr.

This saves one API round trip for both of those calls (as an example,
"ls -l" issues 3 getxattr calls for every file listed). A whitelist of
attributes known to be mutable (e.g. 'state') are never cached.
PTFM-10996 Make stat more efficient.

Store each directory's entries in a dict keyed by the object's name,
rather than in a list. This means stat can find the correct item in a
single operation (per directory level) rather than having to iterate
over all the files in the directory.

(This should help with "ls -l" performance; it stats each file being
listed, which was previously altogether quadratic time in the number of
files in the directory.)
Changelog and version updates for v0.91.0
Move get/set_env_var compat helpers from compat to env.
Add test for tcsh environment file
PTFM-11429: dx: Use workflow outputFolder when set
Merge branch 'master' into python-encoding-migration

Conflicts:
	src/python/dxpy/compat.py
	src/python/dxpy/scripts/dx.py