Fix memory leak and optimize silent playback in canberra plugin

If event has sound.volume property with value 0, don't really play the
sample but call complete immediately.

Also previously canberra plugin called n_sink_interface_complete() from
canberra_sink_play() where the request is not yet in playing state and
calling complete doesn't do anything. Added completion callback which is
called after plugin is in playing state.