demux: introduce typed operations for demux
This commit introduce a typed virtual table for operations on demux, aiming at replacing the legacy pf_control() callback which is using va_list. As a counterpart to the typed virtual table, typed methods are also introduce.
The operations can be implemented by the modules directly right now and will be used when possible. This is done to provide type safety at every level.
When no operation is provided (ie, demux_t.ops is NULL) by a module implementation, the legacy pf_control will be used instead as a fallback.
The commit doesn't migrate any of modules yet.