Make sure a reference exists to a Synth before the SynthDef instance is constructed

Make sure that we hold a `ResourceRef<Synth>` reference to a Synth after
it has been constructed BEFORE calling the SynthDef's construct method.

A plugin might call `methcla_world_resource_release` which could destroy
the synth before it has been entered into the node map, leaving
a dangling reference.
Remove unused constructor arguments
Remove unused variable
Add Methcla::SoundFileInfo with convenience methods
Make duration a template method
Add interleave/deinterleave template functions
Move MultiChannelBuffer to Methcla::Audio