Abstract access to HAL stream via Source in RecordThread

This allows to replace direct reading from HAL with obtaining
audio data from another source.

It should be possible to encapsulate reading from FastCapture
in the same manner, but it's not required for direct inputs.

Test: make
Change-Id: I3f005583410cc9c5d4b07c127d95e236abb4a85f
diff --git a/services/audioflinger/Threads.h b/services/audioflinger/Threads.h
index 6a9c0e7..34a3f34 100644
--- a/services/audioflinger/Threads.h
+++ b/services/audioflinger/Threads.h
@@ -1647,6 +1647,7 @@
             void    checkBtNrec_l();
 
             AudioStreamIn                       *mInput;
+            Source                              *mSource;
             SortedVector < sp<RecordTrack> >    mTracks;
             // mActiveTracks has dual roles:  it indicates the current active track(s), and
             // is used together with mStartStopCond to indicate start()/stop() progress