cleanup: git-extract

@kevgo 

Update git-extract to make the conversion to command list architecture easier.
Since this method is already aware that it is unsafe, and you retry on file name collision, I think a single `$RANDOM` is enough here.