resolves #155 remove needless checkouts on git-hack and got-extract

Left a needless checkout on git-prune-branches because that function needs better tests. See a few use cases I didn't consider when writing it. Remove sync_main_branch as it was only used in one place an was the root cause of all these needless checkouts

git-extract also now only syncs the main branch after commits have been selected. Can't think of any reason why the main branch would need to be synced beforehand.