Immediately save exit code

Even a test of it will update it. Example:

    perl -e 'die' 2>/dev/null; [ $? -ne 0 ] && echo $?

The above will echo 0, even though the condition is that $? not be equal
to zero.
Tracks location to minimize checkouts

No more "Already on 'BRANCH'" messages
Fix approach used to determine original location

If the location was a detached head which also had a branch pointing to
it, then it would choose the branch. Multiple branches at one point led
to the first one listed being chosen.