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
You're right about the stop times though, because we'll have to change the dynamic allocation for them soon.

That being said, for the stop times I think we have to move the `comment` into a separate map (since the comment are not on all stop times and are used only for output.
only the head sign remain thus, so I'm not sure the unique_ptr indirection for a unique string is useful.