Clean up and improve our column detection code. It's complicated so we now move it into a new function, which should increase readablility.
Another step towards improving selection. Now, if an element has no element directly to its right, we try to find an element underneath it for a new line. We can then reorder the text elements so they flow from line to line. We try to be conservative so we don't mess up the flow.