Fix indices of test repos so that they're not dirty
RepositoryStatus: add RecurseIgnoredDirs

Expose this option to have the status go into ignored directories.
Update libgit2 binaries to 58eea5e

https://github.com/libgit2/libgit2/compare/06d772d...58eea5e

Configuration: Use snapshot for Get/Find calls. Thanks @carlosmn.
Merge: Keep track of new MergePreference.

StatusFixture: change expectations for star-ignore
When passing bin/* newer libgit2 considers that as ignoreing the bin/
directory and thus won't give us its contents unless we pass in the
RecurseIgnoredDirs option. Done by @carlosmn.
Introduce GlobalSettings.Features()
Clone the test repository only when required
ObjectDatabase: we should fail when asked to read too much

ObjectDatabase.CreateBlob() accepts a number of bytes to read. It
currently however treats this as a max, rather than a hard size, which
seems ripe for introducing bugs.

Assert that we should throw when asked to read too much from a Stream.
ObjectDatabase: stream objects when we know we can

When given a size and no path, we know that we do not need to buffer the
content or apply any filters, so we can create an write-stream into the
object database and put in our content directly, avoiding the temporary
file and callbacks altogether.
Slight documentation fix