Stop headsigns

This PR establishes three things

- Move all unnecessary attributes of VJ to dynamically allocated struct,  reduces size of VJ from 304 bytes to 176 bytes. A further reduce to 128 bytes is possible when the std::map (48 bytes) for calendar_id is removed.
- Explicitly make a field for headsign instead of using the name field. Name field is now used for the name of a vj, for example a train-number
-Use a dynamically allocated struct with headsign and comment to allow a StopTime to override the VJ-headsign
I don't see the point of adding an additional layer of indirection for this since we use the VJ only as dynamically allocated objects.

What are the rationals behind this ?