parse commit marks more leniently

Older versions of git-log would print marked commits (like
boundary commits) like this:

  commit -bc911786d75680d0fa28ac81c846775f6a7c894f

However, since git v1.7.5, it now outputs:

  commit - bc911786d75680d0fa28ac81c846775f6a7c894f

As a result, we pass the extra space into `main_register_commit`,
which ends up copying the null sha1 as the commit id. As a result,
we would fail to match it with a later call to `main_add_commit`,
and would omit the marked commit from the graph.

Since we do not know which git version we are using, let's cover
both cases by simply skipping past any non-alphanumeric content,
including spaces and marks, which should put as at the commit id.

Note that we can just drop the "is_boundary" check in our loop,
as it is only a special case of "!isalnum". We need the latter to
also move past --left-right marks.
graph: uncomment is_boundary propagation

This code came into being commented out in 607cfb1 (Rewrite
the revision graph renderer, 2009-12-11), but it is not
clear why (perhaps because of the s/->/./ compile error, and
was meant to be looked at later?).

As a result, we would lose the is_boundary flag, leading to
them being displayed as normal commits.  Probably nobody
noticed, though, because boundary commits were otherwise
broken until the previous commit.