Make open changes conflicting

@charlierudolph this implements #176. What do you think?
I think it would be better to encapsulate ignoring gitignore into the helper instead of the step. This is what we do with branches where we delete the master branch.

Also the name all_files_in_all_branches seems sounds weird to me. What about just files_in_branches?

Finally pushing the ignoring into the file_in method makes it possible to just use map and flatten
```ruby
# Provides the files that exist in the given branch
def files_in branch:
  array_output_of("git ls-tree -r --name-only #{branch}").reject { |f| f == '.gitignore' }
end


# Returns a table of all files in all branches.
# This is for comparing against expected files in a Cucumber table.
def files_in_branches
  existing_local_branches.map do |branch|
    files_in(branch: branch).map do |file|
      content = content_of(file: file, in_branch: branch)
      { branch: branch, name: file, content: content }
    end
  end.flatten
end
```