109.30.00

- Added function `Throttle.kill`.

  `Throttle.kill` aborts all jobs that have been enqueued but not
  started, and immediately aborts all jobs subsequently enqueued.

  Split out `Throttle` debugging and unit-testing code into their own
  modules.

- Changed the semantics of `Throttle.enqueue` on a dead throttle so that
  the exception is sent to the monitor rather than raised synchronously.

  This gives more uniform treatment to the race between enqueueing a job
  and an already running job raising.  Now the enqueued job is always
  aborted, whether enqueued before or after the raise.

- Added an ASYNC_CONFIG option to print debug messages when `Monitor.send_exn` is called.

  This is useful when one is debugging an application in which an
  exception is being unexpectedly swallowed.

- Allow one to dynamically configure the behavior of =Monitor.try_with=.

  This is to allow experimentation with different handling of
  asynchronous exceptions after `Monitor.try_with` has become
  determined.