git_checkout_index: checkout other indexes

git_checkout_index can now check out other git_index's (that are not
necessarily the repository index).  This allows checkout_index to use
the repository's index for stat cache information instead of the index
data being checked out.  git_merge and friends now check out their
indexes directly instead of trying to blend it into the running index.
Merge pull request #2453 from ethomson/checkout_index

git_checkout_index: checkout other indexes