Fix copying / amending mutable objects

The ZTR reader is based on subclassing and amending the MCA
reading code for the slightly different format, but it should make
a proper copy of everything first as mutable types are being used.
Add a flag to indicate that a train schedule has crossed midnight

Train schedules are always associated with the day that the train
starts, even if this is just before midnight and most of the stops
of the train happen on the following day. To track this a flag
xmidnight has been added to indicate that the times specified are
now for the following day. I don't think that there are likely to be
any trains that take more than 24 hours so this should be
sufficient.