SQLAlchemy(as in, not Dataset)-based magic model logger.

SQLAlchemy has a hook for providing default values, which we exploit to the fullest;
we win the ability for the user to explicitly set a run_id or time if they really want to,
and need not even override insert() to do it.

This version doesn't actually have a ModelLog class. That will have to be thought about.
Improve TimestepLog example to make the reason for the syntactic sugar obvious.
Allow the user to explicitly set the timestep, if they really need to.
Split run_id and  time to separate classes, like last night's version.

This is a lot cleaner than last night's version. All the effort is done
by tweaking parameters before initialization; no monkeypatching required.
In fact, our part gets out of the way as soon as the Tables are created.
Tried using super(). It failed.