Merge pull request #11 from jondkinney/list_returns_empty_array_not_nil

List returns empty array not nil when no pull requests are present on a repo.
Set better defaults & accept default w/ enter key

- The standard Unix convention for CLI prompting is that the upper case character be the default option without needing to specify any input (pressing enter will choose the default option for the user). This pull request allows for that to work.
Fix some specs, oops!

I can't get the init specs to work though when the 'exit' is in place.
However, without the exit in place the initialization loops. Any ideas?
Don't mess w/ a response that is directly passed in

This fixes a regression where zenflow would not accept the branch name directly in the 'zenflow feature start branch_name_here' command.
Move default option to lower case to follow convention
Stop init from being called twice 

…when run without --force and a .zenflow config is present
Cover new logic in self.valid_response? w/ specs

Tests the following:

- If no response is set, set the response to the default option if
a default option is passed in

- Downcase both the response typed in by the user and all options set
programatically so that they will have a higher likelyhood of matching.
  - However, if a response is set programatically do not destructively
downcase it. Note: I'm not entirely sure why, but unless I added this
guard clause to not downcase a passed in option I couldn't set branch
names on the command line directly. It would hang and prompt for
a name.
Fix typo
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
Merge branch 'fix_default_config_options' into integration_jonk
Merge branch 'add_rebase_option' into integration_jonk

Conflicts:
	lib/zenflow/cli.rb
	spec/zenflow/helpers/branch_spec.rb