Split rewrites, status doesn't return rewrites

Ensure that we apply splits to rewrites, even if we're not
interested in examining it closely for rename/copy detection.

In keeping with core git, status should not display rewrites,
it should simply show files as "modified".
Fix incorrect precedence within git_repository_is_empty()

Reverts part of 9146f1e57ec4f2b6fa293c78d54f1383464ff5be.
repository: Make the is_empty check more explicit
Treat detached HEAD as non-empty repo

This simplifies the git_repository_is_empty a bit so that a
detached HEAD is just taken to mean the repo is not empty, since
a newly initialized repo will not have a detached HEAD.
odb: Honor the non refreshing capability of a backend
odb: Code beautification
Merge pull request #1814 from libgit2/is-empty-fix

Fix incorrect precedence within git_repository_is_empty()
path: properly resolve relative paths
Merge pull request #1825 from nvloff/resolve_relative

path: properly resolve relative paths
Merge pull request #1804 from ethomson/rewrites

Minor changes for rewrites
don't use inline in tests for win32
Fix resolving relative windows network paths
Merge pull request #1827 from libgit2/relative-path-win32-fix

Fix resolving relative windows network paths
Split examples CMakeLists.txt

Also, this converts the examples/CMakeLists.txt from explicitly
listing to just globbing for all the individual C files.
Merge pull request #1828 from libgit2/examples-cmakelists

Split examples CMakeLists.txt
odb: Move the auto refresh logic to the pack backend

Previously, `git_object_read()`, `git_object_read_prefix()` and
`git_object_exists()` were implementing an auto refresh logic. When the
expected object couldn't be found in any backend, a call to
`git_odb_refresh()` was triggered and the lookup was once again performed
against all backends.

This commit removes this auto-refresh logic from the odb layer and pushes
it down into the pack-backend (as it's the only one currently exposing
a `refresh()` endpoint).
Backport @peff's fix for duplicates in sha1_lookup
Merge pull request #1817 from libgit2/ntk/fix/backend/honor_refresh_capabilities

Of backends and refreshers...
Provide better errors for push on non-bare local remotes
Test pushing to remotes with "file:///" urls