Add serialization and change git reset to git checkout to solve nasty concurrency issues
Fix test failure introduced by not having update_branch cause a fetch
Move locking inside update_*_branches so the puppetupdate binary locks too
Strip out the "no branch" you get when in a detached HEAD