Status with renames

Move `RepositoryStatus` to the new `git_status_list_new` API, which allows us to find similar renames in the index.

By default, detect similarity in staged changes (only) and account for rewrites, however we provide an additional flag to detect unstaged renames in the working directory.  I did not wire up any of the other status options.

Big thanks to Rick Potts for all the work here, this is really his PR, I just rebased it on latest and fixed some things up.