Add ODB API to check for existence by prefix and object id shortener

This adds two new APIs based on conversation from earlier today:

1. An ODB function `git_odb_exists_prefix` which checks for the existence of an object based on a `git_oid` prefix and may return `GIT_EAMBIGUOUS`
2. An Object function `git_object_short_id` which generates a string for a short id that will uniquely identify the object. It does this by starting with the length of `core.abbrev` (default 7) and gradually lengthening the string until it is not ambiguous any more.

I'm not sure if the function signature of the `git_object_short_id` API will be to everyones liking, but I thought I would propose it and see what people think. This seems like the most useful version to me, but I can easily understand if we would prefer an alternate approach.