Refactor PatchPanel

Major changes:

 * since PatchPanel is internal to AudioFlinger, and has the same
   lifetime period, there is no need to use reference counting;

 * setAudioPortConfig moved to AudioFlinger;

 * store Patches in std::map instead of SortedVector, and
   directly--not as pointers;

 * move {create|clear}PatchConnections into Patch class;

 * use __func__ in logging.

Test: test basic audio functionality on taimen
Change-Id: I813fd8430a0e97cd01cc74e6b3b828b10ff5acd4
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h
index 963a87d..692a904 100644
--- a/services/audioflinger/AudioFlinger.h
+++ b/services/audioflinger/AudioFlinger.h
@@ -843,7 +843,8 @@
 
     nsecs_t mGlobalEffectEnableTime;  // when a global effect was last enabled
 
-    sp<PatchPanel> mPatchPanel;
+    // protected by mLock
+    PatchPanel mPatchPanel;
     sp<EffectsFactoryHalInterface> mEffectsFactoryHal;
 
     bool        mSystemReady;