ASoC: Intel: Revisit Baytrail PCM suspend/resume handling

Currently stream restore after resume is not working reliably. Driver gets
SNDRV_PCM_TRIGGER_SUSPEND and SNDRV_PCM_TRIGGER_RESUME commands over
suspend/resume cycle and we actually restart the stream only after getting
xrun() since sst_byt_pcm_restore_stream_context() don't restart the stream.

Then another thing is that we cannot call
sst_byt_pcm_restore_stream_context() from the trigger callback since it is
not atomic. Queue instead a work that will both restore the stream context
and start it again.

Note we simplyfy the code a little by storing suspend_offset in every
sst_byt_pcm_pointer() call instead of doing it in
removing sst_byt_pcm_save_stream_context(). Stream context saving when done
properly would require to wait stream to stop first and saving
suspend_offset only by then. This felt too complex compared to saving
one integer more in every sst_byt_pcm_pointer() call.

We can implement it back if we need to do some additional context savings.
Probably outside of atomic trigger callback context.

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>