ISkinComponent
ISkinLookup
DefaultInputDrum
SkinnableDrawable
InputDrum
This is probably not a good way to approach this, but I'm unsure about any other way.
DrumSampleTriggerSource
Tidy things up, move logic out of SampleInfo.
Also adds support for null channels at InputDrum level.