fixes #2887 - global options --username and --password are used properly

  - username and password are read from shared context
  - logging of what is being executed was added
  - new --dry-run option