core 109.28.00-rc1

# 109.28.00

## async_core

- Eliminated a messy dependency cycle in `async_core`, so that
  `Monitor.t` no longer contains a `Tail.t`.

  `async_core` was messy because of cycle between the following types:

  ```
  Execution_context
   --> Scheduler
   --> Ivar
   --> Deferred
   --> Tail
   --> Monitor
  ```

  This messiness caused the need for the `Raw` signature, for the
  various `Scheduler_dependent` functors, for making various types
  polymorphic in `execution_context`, and then instantiating the
  polymorphism later.

  The cause of the problem was that `Monitor` contained a `Tail`.  We
  eliminated that, so that there is no longer a cycle, and defined
  things in order:

  ```
  Monitor
  Execution_context
  Job
  Scheduler
  Ivar
  Deferred
  Tail
  Stream
  ```

  Replaced the `errors` tail from the monitor type:

  ```ocaml
  errors : (exn, 'execution_context) Raw_tail.t;
  ```

  with a list of handlers:

  ```ocaml
  mutable error_handlers : (exn -> unit) list;
  ```

  Cleaned up all the messiness caused by the cycle -- eliminated the
  `Raw` signature, the `Scheduler_dependent` functors, and the
  unnecessary polymorphism.

  Cleaned up the long standing annoyance with `Async.Stream`, in which
  we couldn't expose the `next` sum type and people had to use
  annoying `Stream.of_raw` calls.  `Stream.of_raw` is now gone.

## async_extra

- Fixed an error message in `Versioned_rpc` that was swapping which
  versions were supported by the caller and the callee.

## core

- Moved `Timing_wheel` from `Zero`.

## core_extended

- In `Shell` functions, made the amount of captured stderr/stdout
  configurable.

## core_kernel

- Moved all the contents of the `Zero` library into `Core`, mostly
  into `Core_kernel`.

  We want to start using `Zero` stuff more in `Core`, which couldn't
  be done with `Zero` as a separate library.

  Everything moved into `Core_kernel`, except for `Timing_wheel`,
  which moved into `Core` proper, due to its dependence on `Time`.
- Renamed `Flat_tuple_array` as `Flat_array`.
- Added `Dequeue.{front,back}_index_exn`

  These are more efficient than using `{front,back}_index` and then
  `Option.value_exn`.
- Exposed `Core.String.unsafe_{get,set}`.

## pipebang

- Fixed `pa_pipebang` in the toplevel.

  `pa_pipebang` had registered an AST filter for implementations but
  not for the toplevel.

## type_conv

- Fixed an issue with `type_conv` in the toplevel.

  Used AST filters for the `_no_unused_value_warning_` machinery.
  `type_conv` modifies the parser but it didn't work well in the
  toplevel.

  Removed the `parsing_mli` reference, an instead always add the
  special `_no_unused_value_warning_` type and just strip it for
  signature items.