playlist: fix deadlock when calling playlist_restore() on certain timing
for example:
<audio> audio_thread
<audio> -audio_playback_handler
<audio> --audio_start_playback
<audio> ---audio_fill_file_buffer
<audio> ----playlist_peek
<main> -playlist_resume { playlist_write_lock(playlist) }
<main> --alloc_tempbuf
<main> ---core_alloc_ex
<main> ----buflib_alloc_ex
<main> -----buflib_compact_and_shrink
<main> ------playback.c:shrink_callback
<main> -------audio_queue_send(Q_AUDIO_STOP)
<main> (waiting for audio queue reply)
<audio> -----get_track_filename { playlist_write_lock(playlist) }
<audio> (waiting for playlist lock)
resolve this by not locking playlist until temporary buffer is allocated
Change-Id: I55a856780d17455b13e2515e096095ae0e9c86c2