ddc-core-flow: start on new Process# representation

In order to implement more interesting combinators, we need to annotate
vectors with rates.
I have added a new RateVec# type, which is indexed by rate.
We also want to limit Series# so they can only exist within the context
of a Process#.
Originally, runProcess# was doing quite a few things: introducing rates,
converting Vector#s to Series#s, and making sure rates do not leak
outside of the context of the runProcess#.
However, we *do* want to allow rates to exist outside of a runProcess#,
but we still do not want Process# or Series# to leak outside, so we
introduce a new kind: Proc. The runProcess# introduces an existential
Proc, and all Process# and Series# are indexed by this Proc.
This disallows the series and process operations from existing outside a
runProcess#, and also means different calls to runProcess# can't share the same
series or processes.
We also want to make sure that all processes inside a runProcess# can be
implemented by the same set of loops, so we index Process# by the rate
of its loop, and Series# by both the result size, and the loop required
to generate it.
ddc-core-flow: processes: remove loop rates from series,...

I've removed the loop rates from Series#.
Instead, we have a new type "Resize" which lets you resize a Process'
rate to the actual loop rate. to join processes, you have to find a
common size and resize the processes to the same size before joining.
ddc-core-flow: add ratevec-series conversion to slurp
ddc-core-flow: remove NestLoop's nestResult field; was not used, unnecessary since loops mutate
ddc-core-flow: slurping nested contexts rather than just operators
ddc-core-flow: context merging, resizing, etc
ddc-core-flow: scalar scheduling Context to Nest
ddc-core-flow: schedule kernels
ddc-core-flow: code gen for Contexts
ddc-core-flow: temporarily disable rate inference and totetra tests while working out new flow codegen