revwalk: accept committish objects

Let the user push committish objects and peel them to figure out which
commit to push to our queue.

This is for convenience and for allowing uses of

    git_revwalk_push_glob(w, "tags")

with annotated tags.
revwalk: add a failing test for pushing "tags"

This shows that pusing a whole namespace can be problematic.
revwalk: ignore wrong object type in glob pushes

Pushing a whole namespace can cause us to attempt to push non-committish
objects. Catch this situation and special-case it for ignoring this.
revwalk: remove usage of foreach
revwalk: add a test for pushing all references

This used to be broken, let's make sure we don't break this use-case.
revparse: do look at all refs when matching text

Now that we no longer fail to push non-commits on a glob, let's search
on all refs when we rev-parse syntax asks us to match text.
Merge pull request #2094 from libgit2/cmn/push-non-commit

Add flexibility to the revwalk API