In-memory packing backend
Add faster git_submodule__is_submodule check
Fix submodule sorting in workdir iterator

With the changes to how git_path_dirload_with_stat handles things
that look like submodules, submodules could end up sorted in the
wrong order with the workdir iterator.  This moves the submodule
check earlier in the iterator processing of a new directory so
that the submodule name updates will happen immediately and the
sort order will be correct.
Cleanups
Improve test of submodule name sorting
Add CFLAGS -Wdeclaration-after-statement

This warns local variables declarations after statement, which helps not to break MSVC
Merge pull request #2229 from linquize/Wdeclaration-after-statement

Add CFLAGS -Wdeclaration-after-statement
Merge pull request #2226 from libgit2/rb/submodule-sorting-fix

Fix submodule sort order during iteration
Merge pull request #2208 from libgit2/vmg/mempack

In-memory packing backend