public.json: Add trip.stops with target, estimated, and actual times

We don't have stop.trip at the moment, because stop instances are only
exposed through trip.stops.

Before the trip's cutoff, stop.target-time and stop.estimated-time
will match, and be calculated based on average delivery times for that
drop along that route.  Once a trip reaches its cutoff, an
adminstrator will verify drops that have reached their minimums and
remove drops that had no orders or did not reach their minimums.  At
that pointwe'll have a final list of which drops will be visited, and
we'll make final adjustments to the target-time and update
estimated-time to match.

Once a trip leaves the warehouse, we'll keep estimated-time up to date
with any updates from the driver (heavy traffic, light traffic,
mechanical problems, road closures, ...).  Drop members can use this
estimated-time to see if they should arrive at the drop location early
or late.

Once a driver reaches a stop, they'll notify Azure and we'll record
the actual delivery time in stop.time.  If there is poor cell coverage
in the stop location, we may not hear about that stop time until the
driver returns to an area with better cell coverage.  In the interim,
stop.estimated-time will be in the past but stop.time will not be set,
which can be interpreted as "to the best of our knowledge, the stop
was reached at stop.estimated-time, but we have yet to receive
confirmation of that or the official stop.time".