improved Painter interface and its implementations

Painter interface now does not require methods to paint
Edges / Points anymore. This makes implementing the interface
simpler.

Painter now requires a drawPath method that could be optimized
e.g. for SVG to create Paths for curves instead of unconnected
segments.