Respect the mainline of the merges

Normally the 1st parent of a commit is the branch we're merging _into_,
so if you keep this on the left then you can always read a merge as
right-to-left. Previous it seems to be a bit random.

By comparing the position a 'lane' in the 'lanes', the earier a lane is
created, the more priority it has.

Signed-off-by: Ignacio Casal Quinteiro <icq@gnome.org>
Use the same color for every long-runing lane

Signed-off-by: Ignacio Casal Quinteiro <icq@gnome.org>