funken: be consistent about dealing with references, forwarding and const
funken: be consistent about dealing with references, forwarding and const

To allow mutable reducers be wrapped into transducers, the reducers
that transducers produce now consistently define non-const () operators.

Also, when constructing wrappers for values from universal references now
we consistently decay the inferred values when defining the box type.
The other way we were actually capturing references that we should not.

Also, std::forward is not used anymore in contexes where we could not
understand its benefits.

iankronquist/atria,bowlofstew/atria,manashmndl/atria,respu/atria,AbletonAG/atria,bowlofstew/atria,manashmndl/atria,bowlofstew/atria,iankronquist/atria,Ableton/atria,shaunstanislaus/atria,Ableton/atria,shaunstanislaus/atria,dodheim/atria,kod3r/atria,AbletonAG/atria,dodheim/atria,manashmndl/atria,iankronquist/atria,Ableton/atria,lyrl/atria,respu/atria,dodheim/atria,kod3r/atria,respu/atria,lyrl/atria,lyrl/atria,kod3r/atria,AbletonAG/atria,shaunstanislaus/atria