Fix `fetch_git` with `--keep`

Update existing git repo if exists, or clone if not exists.
The destination repo might exist if the `--keep` was supplied for `ruby-build`.
Add tests for `fetch_git`
Surely update local git working copy
Merge pull request #549 from yyuu/fix-fetch-git-with-keep

Fix `fetch_git` with `--keep`