Gtfswrite

Fix #1630 (GTFS write functionality).
Do they actually need to be immutable? From my point of view that just a detail of how they are used with a particular library (MapDB). Making all these fields final creates the need for a trivial constructor with a lot of positional arguments, which is less readable than sequential assignment to a lot of named fields. It is also allowing a current storage choice to leak through into the data model -- the need to shift this table onto disk is the only explanation for why some GTFS entities have final fields and others do not.

Also consider that in OTP or elsewhere, will want to iterate over lists of stop times and clean them up (for example to make sure they are increasing). These final fields prevent someone from fetching a bunch of StopTime objects for a trip and modifying them in place before passing them to some other function.