Teach Index.Stage to stage files in ignored dirs

If a directory is ignored and you attempt to stage
a file beneath that directory, the file is not
staged.  By having diff return files beneath that
ignored dir, we can add that file.
Add Config.GetValueOrDefault() extensions
Override Signature.ToString()
Clean up reflog assertions
Committish has two t's
Append to reflog in Branches.Add() and Move()
Respect core.logAllRefUpdates
Don't resolve SymRef Target to direct
Remove unused Proxy.git_reference_resolve()
Fix SymbolicReference debugger display
Simplify HistoryRewriter.RewriteReference()
Replace HistoryRewriter's shaMap with objectMap
Tag target isn't always a GitObject
Teach RewriteHistory to rewrite symbolic refs

Closes #501
Update libgit2 binaries to 32e4992

https://github.com/libgit2/libgit2/compare/eb04744...32e4992
Drop dead code

In `git_odb_write()`, libgit2 already calls `git_odb_exists()`
before invoking the backend write() method.
Drop dead code

`FinalizeWrite()` is only invoked if the object pointed at by the oid
isn't found in any backend.
Make OdbBackend expose valid backend return codes
Small refactoring
Add GIT_EUSER to OdbBackend exposed return codes