Implemented parameters for Diff.find_similar()

Diff.find_similar now supports the parameters that are exposed by
libgit2's git_diff_find_similar.

Parameters supported are rename_threshold, copy_threshold,
rename_from_rewrite_threshold, break_rewrite_threshold and rename_limit
Parsed parameters directly passed into options object
oid: do not load the object when expanding

We now have a function which lets us expand an id prefix by checking for
existence and uniqueness instead of loading the object with that id.
Merge remote-tracking branch 'ArnoVanLumig/master'
internal: rename "to_str" to "to_bytes" for clarity
internal: split code for Python 2/3 compatibility
Fix regression in v0.21.1, IndexEntry.path returns str

And str in Python 2 means bytes. Recall, we are supposed to give a
native experience to both Python 2 and 3 users.