Make `Repository.Index.Stage()` diff-based

And at the same time, teach it to report and/or fail upon unmatched pathspecs.