Simplify describe branch logic
Correctly handle private and public key filenames
Init allow_ssh sooner to fix subsequent logic
ssh_config: code review fixes; SSHHostKey field support
Fix dxpy.compat.expanduser on Python 2.7 on Windows
Fix dx ssh_config test after 70a1f05
Read back SSH public key when testing ssh_config
Restore original SSH public key after test
SSHHostKey -> sshHostKey
PTFM-12316: Support app identifiers in dxpy.get_handler
Update comment to reflect change in 11879e3
dx ssh_config: prompt to recycle or unlink existing key
Retry POST /authorizations in dx login
Code review fixes for "dx build --remote --run".

* Refactor to extract method _build_app (which does the build and
  returns the executable ID) from the rest of main.
* Add a regression test for dx build --dry-run MYAPP.
* Prohibit --dry-run and --run together, and add a regression test.
* Add a regression test for dx build --remote --app.
* Add a test for dx build --remote --app --run (which is not yet
  supported).
SSHPublicKey -> sshPublicKey
Changelog and version updates for v0.104.0