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
The idea was that the for the routing memory component less memory has to be pulled to check validity_patterns and vehicle_properties. But now i have to admit i kinda looked over the fact that all VJ's are dynamically allocated.