Various warning cleanup and minor fixes

This cleans up a number of small warnings and some little bugs that have crept in. Specifically:

* Re-fixes `git_indexcap_t` to explicitly mark constants as unsigned. Previously merged "fix" actually added new warning messages for me
* Fixed warning in `git_filter_list_apply_to_blob` that also needed some actual error checking
* Fixed apparent misplaced semicolon with template code in `repo_init_structure` and avoided NULL ptr usage when error occurs
* Streamlined some calls to `git_buf_printf` with format `%.*s` to just use `git_buf_put` instead
* Found seemingly missing `va_end` inside `git_buf_vprintf`
* Adds `-Wno-missing-field-initializers` for Makefile.embed so embedded build will be quieter
* Fixed test case where `git_off_t` values were being compared as `size_t` instead

None of these seem big enough to merit their own PR, but I thought someone should probably glance over the batch of fixes before merging. (Also, hate to push directly while the build is broken b/c of the redirect issues.)