Fix GTIndex entryWithName:

Previously, GTIndex's entryWithName: method treated the result of git_index_find() as the position of the entry in the index. However, this is wrong - the returned value is an error code (or zero for success). So every time you called this method with any name, it would return either zero or a negative error code, and the subsequent call to git_index_get_byindex() would return the first entry.

This change modifies the behaviour to pass in a pointer to a position variable of type size_t in which the position is stored by git_index_find() on success, and this value is used to look up the index entry. On error, the method returns nil.

I have also added one new method, entryWithName:error:, which allows the caller to receive details of the lookup error, in case of failure.