audio: move gef device change notification to the tail

It's thread unsafe to unlatch the device lock in the middle, active
usecase list may be accessed from other threads and results into race
condition.

Caching the stream information and notify device change at the tail of
select_devices(). In the wrost case, stale info gets notified which won't
harm.

Change-Id: I14f2473a304761d1b2d822135db4c70862c84415
1 file changed