repository: Add `git_repository_open_bare`
refs: Add `git_referene_target_peel`
checkout: use cache when possible to determine if workdir item is dirty

If the on-disk file has been staged (it's stat data matches the stat data
in the cache) then we need not hash the file to determine whether it
differs from the checkout target; instead we can simply use the oid in
the index.

This prevents recomputing a file's hash unnecessarily, prevents loading
the file (when filtering) and prevents edge cases where filters suggest
that a file is dirty immediately after git writes the file.
Merge pull request #1476 from libgit2/vmg/bare-open

Add `git_repository_open_bare`
Merge pull request #1477 from ethomson/checkout_modified_use_cache

checkout: use cache when possible to determine if workdir item is dirty
refs: Check alloc is cleaner
refs: Do not union the peel
Merge pull request #1475 from libgit2/vmg/refs-peel

Allow access to the cached peel data in packed-refs
repository: Doc fix
use a longer string for dummy data in test to avoid conflicting w/ index
Merge pull request #1478 from ethomson/win32_typechange_test

use a longer string for dummy data in test to avoid conflicting w/ index
Return error for empty name/email
treebuilder: don't overwrite the error message
Merge pull request #1482 from nviennot/error-name-email

Return error for empty name/email
Add filesystem iterator variant

This adds a new variant iterator that is a raw filesystem iterator
for scanning directories from a root.  There is still more work to
do to blend this with the working directory iterator.
Make workdir iterator use filesystem iterator

This adds some hooks into the filesystem iterator so that the
workdir iterator can just become a wrapper around it.  Then we
remove most of the workdir iterator code and just have it augment
the filesystem iterator with skipping .git entries, updating the
ignore stack, and checking for submodules.
More filesystem iterator cleanup

Renamed the callback functions and made some minor rearrangements
to clean up the flow of some code.
More filesystem iterator tests

Refactors the helper function that builds a directory hierarchy
and then made use of it to try more variations on filesystem
iterator tests.
Fix uninitialized var warnings
Fix fs iterator test on case sensitive fs