Improve performance and functionality of `fin bash` (#1247)
Improve performance and functionality of `fin bash` (#1247)

* Improve performance and functionality of `fin bash`

When running `fin bash`, a special value was passed to `_exec()` which sets the
command to run to an interactive shell. This caused the shell and login scripts
to be started twice, which causes an unnecessary delay before the shell is
available for the user.

This commit changes `_exec()` in the following ways:

* Instead of executing `cd {path}` to switch the working directory, use the
  `--workdir` option of `docker exec` instead.
* Consider `__SHELL_INTERACTIVE__` a special case where we only run an
  interactive shell without passing a command to run. This cuts time in half
  for a `fin bash` invocation.
* Working directory is now also changed for the `web` container (when running
  `fin bash web`).

* Use shorthand for workdir option

* Remove initial value for cmd variable

docksal/docksal