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 introducing an auto-increased id to every lane, the earier a lane is
created, the more priority it has.
Use the same color for every long-runing lane
Merge branch 'feature/respect-merge-mainline' into develop