Teach Repository.Clone to accept a specific branch to checkout

Manual merge of #650