A few niceties for binding authors

Allow retrieval of the remote's callback struct, as language bindings might need to use it to store extra information than a self-pointer.

Returning `GIT_PASSTHROUGH` from the credentials callback behaves as though the callback wasn't set. This is to allow the bindings to always set it and tell us when their 'Remote' class doesn't have it set.