Loosen ensure_not_bare rules in checkout
Loosen ensure_not_bare rules in checkout

With the new target directory option to checkout, the non-bareness
of the repository should be checked much later in the parameter
validation process - actually that check was already in place, but
I was doing it redundantly in the checkout APIs.

This removes the now unnecessary early check for bare repos.  It
also adds some other parameter validation and makes it so that
implied parameters can actually be passed as NULL (i.e. if you
pass a git_index, you don't have to pass the git_repository - we
can get it from index).

raybrad/libit2,maxiaoqian/libgit2,dleehr/libgit2,swisspol/DEMO-libgit2,kissthink/libgit2,ardumont/libgit2,jflesch/libgit2-mariadb,falqas/libgit2,falqas/libgit2,Corillian/libgit2,amyvmiwei/libgit2,since2014/libgit2,t0xicCode/libgit2,maxiaoqian/libgit2,kissthink/libgit2,skabel/manguse,iankronquist/libgit2,Aorjoa/libgit2_maked_lib,swisspol/DEMO-libgit2,mhp/libgit2,joshtriplett/libgit2,Snazz2001/libgit2,Tousiph/Demo1,kenprice/libgit2,leoyanggit/libgit2,falqas/libgit2,evhan/libgit2,linquize/libgit2,yongthecoder/libgit2,dleehr/libgit2,chiayolin/libgit2,yongthecoder/libgit2,JIghtuse/libgit2,oaastest/libgit2,t0xicCode/libgit2,yongthecoder/libgit2,swisspol/DEMO-libgit2,yongthecoder/libgit2,saurabhsuniljain/libgit2,oaastest/libgit2,spraints/libgit2,kissthink/libgit2,maxiaoqian/libgit2,jeffhostetler/public_libgit2,maxiaoqian/libgit2,joshtriplett/libgit2,saurabhsuniljain/libgit2,spraints/libgit2,t0xicCode/libgit2,Aorjoa/libgit2_maked_lib,claudelee/libgit2,KTXSoftware/libgit2,jeffhostetler/public_libgit2,ardumont/libgit2,mrksrm/Mingijura,JIghtuse/libgit2,mingyaaaa/libgit2,linquize/libgit2,mingyaaaa/libgit2,saurabhsuniljain/libgit2,iankronquist/libgit2,raybrad/libit2,jeffhostetler/public_libgit2,stewid/libgit2,t0xicCode/libgit2,evhan/libgit2,iankronquist/libgit2,Corillian/libgit2,mingyaaaa/libgit2,MrHacky/libgit2,mhp/libgit2,mingyaaaa/libgit2,mingyaaaa/libgit2,KTXSoftware/libgit2,sygool/libgit2,skabel/manguse,kenprice/libgit2,kissthink/libgit2,since2014/libgit2,swisspol/DEMO-libgit2,Tousiph/Demo1,since2014/libgit2,MrHacky/libgit2,falqas/libgit2,ardumont/libgit2,amyvmiwei/libgit2,leoyanggit/libgit2,mrksrm/Mingijura,dleehr/libgit2,magnus98/TEST,yosefhackmon/libgit2,jeffhostetler/public_libgit2,ardumont/libgit2,stewid/libgit2,joshtriplett/libgit2,JIghtuse/libgit2,Snazz2001/libgit2,dleehr/libgit2,maxiaoqian/libgit2,MrHacky/libgit2,jeffhostetler/public_libgit2,mcanthony/libgit2,falqas/libgit2,rcorre/libgit2,yosefhackmon/libgit2,skabel/manguse,leoyanggit/libgit2,magnus98/TEST,chiayolin/libgit2,since2014/libgit2,sim0629/libgit2,sygool/libgit2,oaastest/libgit2,saurabhsuniljain/libgit2,leoyanggit/libgit2,yosefhackmon/libgit2,linquize/libgit2,jflesch/libgit2-mariadb,mcanthony/libgit2,Tousiph/Demo1,rcorre/libgit2,oaastest/libgit2,saurabhsuniljain/libgit2,mrksrm/Mingijura,yongthecoder/libgit2,kissthink/libgit2,claudelee/libgit2,Corillian/libgit2,Tousiph/Demo1,kissthink/libgit2,rcorre/libgit2,sim0629/libgit2,leoyanggit/libgit2,jflesch/libgit2-mariadb,yosefhackmon/libgit2,magnus98/TEST,iankronquist/libgit2,whoisj/libgit2,Aorjoa/libgit2_maked_lib,sygool/libgit2,mcanthony/libgit2,whoisj/libgit2,mhp/libgit2,Snazz2001/libgit2,spraints/libgit2,claudelee/libgit2,chiayolin/libgit2,linquize/libgit2,rcorre/libgit2,yongthecoder/libgit2,Corillian/libgit2,MrHacky/libgit2,mhp/libgit2,magnus98/TEST,rcorre/libgit2,Corillian/libgit2,amyvmiwei/libgit2,ardumont/libgit2,oaastest/libgit2,jflesch/libgit2-mariadb,chiayolin/libgit2,evhan/libgit2,spraints/libgit2,magnus98/TEST,Corillian/libgit2,Snazz2001/libgit2,nokiddin/libgit2,chiayolin/libgit2,mhp/libgit2,magnus98/TEST,falqas/libgit2,amyvmiwei/libgit2,yosefhackmon/libgit2,claudelee/libgit2,spraints/libgit2,mhp/libgit2,Snazz2001/libgit2,dleehr/libgit2,skabel/manguse,sim0629/libgit2,KTXSoftware/libgit2,swisspol/DEMO-libgit2,KTXSoftware/libgit2,kenprice/libgit2,mrksrm/Mingijura,kenprice/libgit2,MrHacky/libgit2,mcanthony/libgit2,linquize/libgit2,skabel/manguse,ardumont/libgit2,Tousiph/Demo1,joshtriplett/libgit2,yosefhackmon/libgit2,nokiddin/libgit2,mingyaaaa/libgit2,dleehr/libgit2,stewid/libgit2,claudelee/libgit2,sygool/libgit2,MrHacky/libgit2,evhan/libgit2,KTXSoftware/libgit2,sygool/libgit2,JIghtuse/libgit2,Tousiph/Demo1,t0xicCode/libgit2,leoyanggit/libgit2,mrksrm/Mingijura,t0xicCode/libgit2,Snazz2001/libgit2,saurabhsuniljain/libgit2,JIghtuse/libgit2,jeffhostetler/public_libgit2,since2014/libgit2,jflesch/libgit2-mariadb,kenprice/libgit2,spraints/libgit2,iankronquist/libgit2,nokiddin/libgit2,sim0629/libgit2,whoisj/libgit2,sygool/libgit2,raybrad/libit2,rcorre/libgit2,linquize/libgit2,whoisj/libgit2,mrksrm/Mingijura,skabel/manguse,sim0629/libgit2,stewid/libgit2,whoisj/libgit2,nokiddin/libgit2,whoisj/libgit2,chiayolin/libgit2,raybrad/libit2,maxiaoqian/libgit2,stewid/libgit2,amyvmiwei/libgit2,JIghtuse/libgit2,amyvmiwei/libgit2,swisspol/DEMO-libgit2,stewid/libgit2,joshtriplett/libgit2,nokiddin/libgit2,nokiddin/libgit2,joshtriplett/libgit2,claudelee/libgit2,sim0629/libgit2,jflesch/libgit2-mariadb,KTXSoftware/libgit2,Aorjoa/libgit2_maked_lib,iankronquist/libgit2,kenprice/libgit2,Aorjoa/libgit2_maked_lib,since2014/libgit2,oaastest/libgit2,raybrad/libit2,mcanthony/libgit2,mcanthony/libgit2