Add rebase opt to keep feature branches up to date

- Requires adding a config option for 'merge_strategy' to the .zenflow
config file at the root of a project.
- [Re]running the zenflow init command will prompt for one

    merge_strategy: rebase

- The global 'rebase' option only applies to the following commands:
  - zenflow feature update
  - zenflow feature finish

Start by pulling the latest changes from the source (parent) branch with
the `git pull --rebase` flag so that the simple act of ensuring that the
source branch is up to date won't result in a merge commit if new
changes need to be pulled in.

Secondly, zenflow will rebase the current feature branch to master (or
whatever is specified as the source branch) and put all the new changes
on top of it. This command can be run multiple times to continously
ensure a long lived feature will be compatible with the latest master
when it comes time to finsh the feature and merge it back.

Finishing a feature with zenflow will first ensure that the source
branch is up to date (specifying a merge_strategy of 'rebase' will make
that command happen with the `git pull --rebase` command).

Next zenflow will rebase the feature branch to the source branch.

All other functions of the 'finish' command remain the same including
merging the feature branch back into the source branch as it always has
with the --no-ff option.
Unify merge_strategy decision logic in branch.rb
Fix specs