Add Channel constructor keyword argument to `@spawn` new Task in parallel (#32872)
Add a parameter to the Channel constructor to allow the Tasks it creates
to be scheduled on multiple threads.
Examples:
```julia
# Spawn a Task to handle each input request
ch = Channel{String}(0, spawn=true) do ch
handle_request(ch, request)
end
```
Adds a manual check that users don't use the `spawn=` keyword argument
with the deprecated keyword arguments `ctype=` or `csize=`.