Fix producing status when there is an unreadable folder in the working directory.

I don't really know my way around `libgit2` much, but I though I'd have a go at fixing the case of producing/enumerating status when there is an unreadable (644) folder in the working directory.

**TODO**
- [x] Write a failing test for `git_status_foreach_ext`
- [x] Make the tests pass :trolleybus: 
- [x] Write a test (and option) for not listing UNREADABLE files.
- [x] Add `GIT_DIFF_INCLUDE_UNREADABLE_AS_UNTRACKED`

Sorry I didn't notice this before - the `GIT_DIFF` constants are broken into two groups (because we may have to, at some point, actually split them into two separate enums with different values in the options structure). These two constants are related to what things go into the `git_diff` object itself so they should be sorted into the first group and should have to the values `(1u << 16)` and `(1u << 17)`, and be put into numeric order.