Refactor|World: Converted Segment into a subcomponent of Line::Side

What remains of the old Segment component now only makes sense in
the context of a Line::Side. Making this a Line::Side subcomponent
presents many opportunities to not only clean up the APIs of these
classes but allow various logics to be pushed up to a higher level
in the map element hierarchy.

Todo: Line::Side should take ownership of the segments and provide
an API for dynamically managing these.