Separate git helpers

The git_helpers files has been getting long. Split into 4 different files
- git_command_helpers - any function that calls run_command or calls a function that does
- git_predicate_helpers - functions that return true/false
- git_required_status_helpers - functions that require a specific status and otherwise error
- git_status_helpers - functions that return anything but true/false

In my opinion, the point of separating helpers into files is to make it easier for developers to find helpers. Developers don't necessarily know whether a command runs `git branch` or something else in its implementation. But they do know the name of it. Hence I propose to use the main object from the name as the key by which we assign helpers to files. By that logic, stuff that decides about "feature branches" should go into "branch helpers" or "feature branch helpers", but not into "configuration helpers". 

In the future, a lot more things will be configurable (squash merges vs normal merges, running tests before shipping etc). Then your current logic falls apart.  :)