Implement a basic collision detection for labels

This attempts to predict where the label is going and pushes it
outwards if it is going to collide with the previous label. It doesn't
always work in all cases however.

A more robust solution would be ideal.