git-core partial impled
partially impled git-check-out
more restructuring and utils