revwalk: Parse revision ranges

All the hard work is already in `git_revparse_single`.

Signed-off-by: Greg Price <price@mit.edu>
revwalk: Parse 'git rev-list' query interface

With this commit, we support (parts of) the interface for specifying
revisions that Git users are familiar with from 'git rev-list', 'git
log', and other Git commands.  This is useful for creating out-of-core
command-line programs that browse a Git repo (like 'tig'), and may be
useful for an 'advanced search' interface in GUI or web applications.

In this version, we parse all the query modifiers we can support with
the existing logic in revwalk: basic include/exclude commits, and the
ordering flags.  More logic will be required to support '--grep',
'--author', the pickaxe '-S', etc.

Signed-off-by: Greg Price <price@mit.edu>
examples: Simple rev-list driver

This imitates 'git rev-list', to the extent that we currently can.

Signed-off-by: Greg Price <price@mit.edu>