add git.multi-gc

添加git.multi_gc功能。如果不指定fork的路径列表，与普通gc相同。指定fork_path时认为fork对repo因共享objects存在依赖，这时列出仍各个fork所有refs的有效commits，传递给prune，以保证做prune时不会删除由它们可达的commits
@xtao 
1. 如果使用先dry-run后排除的办法，需要遍历所有的forks的所有branch的所有的commits，在pygit2下我觉得这不大可能接受
1. 可以改进一下listall_references的方法，找不到就遍历再找。但我认为不会和remotes branches应该是一致的。