add git.multi-gc

添加git.multi_gc功能。如果不指定fork的路径列表，与普通gc相同。指定fork_path时认为fork对repo因共享objects存在依赖，这时首先会在repo上dry-run一遍获取本repo需要删除的commits，然后结合各个fork从中筛出仍被fork依赖的commits，传递给prune，以保证prune时不会被误删
这段代码的缩进略长，可以改成这样的:

```
if os.path.isdir(obj_dir):
    return False
files = os.listdir(obj_dir)
if not files:
    return False
root = obj_dir
for f in files:
    path = os.path.join(root, f)
    if os.path.isdir(path):
        root = path
        break
cnt = 0
for f in os.listdir(root):
    path = os.path.join(root, f)
    if os.path.isfile(path) and P_OBJ.search(f):
        cnt += 1
if cnt > auto_thr:
    return True
return False
```