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

I would be okay to separate merge and rebase helpers into separate files.