Fix Repository#rev_list when called with :until

I was trying to fetch a list of all commits made between two dates, and realized that this:

    Grit::Commit.find_all(grit, "master", { :since=>Time.new(2011), :until=>Time.now })

would only ever return a single commit, rather than the range I requested. The problem seems to be in `Grit::GitRuby::Repository#rev_list`, which fails pretty much whenever the `:until` option is used. This commit message sort-of explains why:

    Grit::GitRuby::Repository#rev_list calls walk_log to recursively
    walk the tree from +sha+ to its parent and onwards, until it has
    found +max_count+ commits.

    the :since and :until options can be provided to filter output by
    date/time, but previously, only :since was working, because we only
    recursed if the current commit was between both :since and :until.

    this didn't matter (most of the time!) for :since, because starting
    at master and working upwards through parents until one of them was
    too old was basically fine.

    for :until, though, we must work backwards until we find a commit
    old enough, *then* begin building +array+ of commits. returning
    without recursing just because the current commit was out of bounds
    was incorrect.

Hope that's clear. This should fix issue #13, too.