introduce visitor with result for boxes

Signed-off-by: Florian Thienel <florian@thienel.org>
introduce listeners to extend layout and painting behaviour

Signed-off-by: Florian Thienel <florian@thienel.org>
provide access to child boxes for traversal

Signed-off-by: Florian Thienel <florian@thienel.org>
sort common methods in common order

Signed-off-by: Florian Thienel <florian@thienel.org>
provide access to relative top and left

Signed-off-by: Florian Thienel <florian@thienel.org>
make IInlineBox coordinates relative to their containing Paragraph

For a IInlineBox, the Paragraph instance is the parent box in the box
structure. The LineArrangement and Line are only utilities that are used
internally by Paragraph. To be consistent with rest of the box
structure, the coordinates for top and left of an IInlineBox should be
relative to its parent, i.e. the Paragraph.

Signed-off-by: Florian Thienel <florian@thienel.org>
provide access to a box's parent

Signed-off-by: Florian Thienel <florian@thienel.org>
provide access to the absolute top/left coordinates of a box

Signed-off-by: Florian Thienel <florian@thienel.org>
add a first concept of a cursor to the BoxView

The cursor can only be moved forward and backward, it's just a
demonstration how the cursor, and other metainformation (e.g. the
selection or spelling errors) can be visualized without dependencies
from the box model to visualization. 

Signed-off-by: Florian Thienel <florian@thienel.org>