Fix the bug of adding the same vehicle onto multiple lanes

The lastWhere method is iterated from the first entry, even for the
DoubleLinkedQueue. I implement a reversedLastWhere method to
overcome this problem.

The drawing of the division lines of lanes is fixed, too.
So many if-else test are used. I wonder if there is a better way...

It is actually a trade off. I either draw easily and do the logic update
part painfully or the other way around.