Schema and annotation updates.
Event.chronological.  #2820.

This scope orders events by their start date and (within a single date)
their chronological order as defined by Event::TYPE_ORDER, which is the
(informally specified) natural progression of events.

Event::TYPE_ORDER is used by dumping the array contents into a table and
involving said table in .chronological's order scope.  Justification:

1) This lets us do type-order sorting in the database, which comes with
   wins such as scope composition, better memory usage, and (usually)
   faster execution.
2) It does not require PostgreSQL extensions such as intarray's idx.
3) It does not generate a large query as one would get by e.g.
   transforming Event::TYPE_ORDER into a CASE block.

Unfortunately, this mechanism is fragile: someone running
EventTypeOrder.delete_all can silently destroy the functionality of
Event.chronological.  We can't just revoke deletion privileges on that
table, because they're needed to refresh the table in the event that
Event::TYPE_ORDER changes.

What I want, I think, is the ability to immediately and atomically
re-establish the order if it is changed outside of blessed mechanisms.
Postgres' LISTEN/NOTIFY might be usable for this purpose.

Event.chronological and its helper scopes are a complete replacement for
Event.sort; therefore, this commit eliminates Event.sort.