implement encode interface for OpusEncoder
encoder: choose sanity check routines only once in ctor
implement decoding; split int16 and float decoders into separate classes
split int16 and float encoders into separate classes
decoder: rename _out -> _pcm for consistency with libopus function signature