Audio: clean sync start event when initilizing RecordThread

Issue Description:
Remote side is muted after killed mediaserver.

Root Cause:
When killed mediaserver, it will recreate RecordThread.
It will check the mFramestoDrop to use SyncEvent. But
in construction of RecordThread, mFramestoDrop is not
initilized as 0. So this value could be anything. And
RecordThread will be blocked as mFramestoDrop.

Solution:
Clean sync start event when initilizing RecordThread.
And let user to choose whether to use SyncEvent in
start() function.

Change-Id: Id279a638f40ad965fc81060e7929acee4354fcbd
Signed-off-by: Chao Deng <cdeng@marvell.com>
Audio: fix no stop_output called issue after changing stream output

Some APPs will create AudioTrack in Java layer directly, so JNI layer
will hold a reference of AudioTrack. Even if we changed stream output,
AudioTrack will not be destructed, so stop_output() will not be called
and cause track start/stop not paired. Need to explicitly call track
stop for old track after new track is created.

Change-Id: I7b8f31b178680dcad49f46a37f0c87c08f365ac3
Signed-off-by: Chao Deng <cdeng@marvell.com>