show whitespace and line breaks

when F10 issued.

it seems that the cluster size is consistently 1 character, which is a
bit insane.
cleaned up cursor logic (part 1)

and implemented delete a across blocks in remove_char()
cleaned up vertical_move (clean cursor logic part 2)

so it does not rely on the layout have been previously called in the
block, as in using metrics.LineCount was the only thing needed.