Restrict Segment2D.head as a protected field

 - tiny modify PolygonDrawerDemo accordingly
In Node, add a general purpose data field and its getter setter