scheduler: Split scheduler interface from the Partr implementation
Move base/partr.jl to base/scheduler/partr.jl and introduce a
Base.Scheduler module that exposes the task scheduler through a small
interface (enqueue!, dequeue!, checktaskempty), with Partr as the
current implementation. This decouples task.jl from the concrete queue
implementation so that alternative schedulers (e.g. workstealing) can
be plugged in. The scheduler RNG helpers move to Base.Scheduler since
they are implementation independent.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>