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

These methods were weird to me. My major separation was based on what command was being run. The create_and_checkout_branch functions could be done with a two git commands one of them being git-branch so I would be fine moving those over but would like to keep checkout_branch and checkout_main_branch in here.