Ignore IntelliJ settings.
Eliminate ineffective uses of "dx select" in tests

Summary:
run('dx select PROJ_ID') in tests didn't actually change the project in a way
that is visible to subsequent subprocess calls. That's because the setUp method
of DXTestCase, used by most of our tests, creates a temporary project and sets
DX_PROJECT_CONTEXT_ID to its id, thereby shadowing the project context in the
session config files that was written by 'dx select'.

This change introduces a context manager select_project that overrides
DX_PROJECT_CONTEXT_ID in the same way that DXTestCase.setUp does (and restores
the old value when it's finished).

Test Plan:
Added a new test for select_project. Moreover, since we had some tests that
succeeded despite 'dx select' not doing the right thing, I verified that this
test fails when the implementation of select_project is just replaced with the
naive call to run('dx select PROJ_ID').

Reviewers: klai

Reviewed By: klai

Subscribers: pnguyen

Differential Revision: https://phabricator.dnanexus.com/D122
PTFM-12609: An improved dx-upload-all script that knows how to upload subdirectories
from the job's output directory to the project space as folders

Test Plan: added a test called file_test/deepdirs

Reviewers: klai

Reviewed By: klai

Differential Revision: https://phabricator.dnanexus.com/D97
Augment "dx find data --path" to receive as input a relative path from current working directory or a path in "project_id:folder_path" format.

Summary:
Existing "dx find data --folder" functionality transferred to "dx find data --path"; --folder flag will be deprecated.
Additionally deprecated --project flag for "dx find data"; project can instead be optionally specified as input to --path flag.

Test Plan: Regression and unit tests (test_dx_find_data_by_scope).

Reviewers: psung

Reviewed By: psung

Differential Revision: https://phabricator.dnanexus.com/D121
Improving help message formatting.

Test Plan: None

Reviewers: klai

Reviewed By: klai

Differential Revision: https://phabricator.dnanexus.com/D126
Enable "dx download <job_id>:<output_field>".

Summary:
Can download output file created by job by specifying job id (e.g.
job-xxxx) and output field (e.g. reads) of output file according to
following: "dx download job-xxxx:reads".

Test Plan: DXTEST_RUN_JOBS=1 ./test_dxclient.py TestDXClientUploadDownload.test_dx_download_by_job_id_and_output_field

Reviewers: psung

Reviewed By: psung

Subscribers: psung

Differential Revision: https://phabricator.dnanexus.com/D129
Changelog and version updates for v0.121.0
PTFM-13569 dx cp: print exists array properly
Changelog and version updates for v0.121.1