Fix typos
Refactor get_options calling syntax
Implement cat_git_dir routine to refactor path manipulation
Do not delete change-branches by default anymore

Up to now, the intended git-gerrit workflow tried to keep locally just
the change-branches that were being activelly worked on. However, we're
heading in another direction, i.e., to keeping every change-branch of
open changes alive. In the few next commits I will implement two new
sub-commands that will make this easier.

I think the new commands will make the intended git-gerrit workflow for
the better. This means that the sub-commands that up to now were
deleting the change-branch they worked on after performing the action
should no longer do so. Hence, this commit makes incompatible changes to
the following sub-commands:

- push: The --keep option was renamed --prune with the oposite meaning,
  i.e., the change-branch will only be removed if the --prune option is
  enabled. Also, the upstream branch is checked out only if --prune is
  enabled.

- upstream: The --keep option was renamed --prune with the oposite
  meaning, i.e., the change-branch will only be removed if the --prune
  option is enabled. Moreover, the --delete option was removed.

- review, abandon, and submit: These sub-commands don't have the --keep
  option anymore and they don't delete the change-branch nor checkout
  the upstream branch.
Fix typos