Return GIT_OK instead of 0
Assert number of paths in status object
Use git_status_foreach_ext for collecting statuses

This takes flags that all ignored files to be excluded
so they no longer need to be checked for in the status
callback.