audiopolicy: More XML deserializer refactorings

 -- use root and cur argument names consistently;

 -- replace 'while' loops with 'for' loops;

 -- avoid passing around of 'xmlDoc';

 -- get rid of PtrElement, parametrize adding to collections.

 -- make possible to return immutable elements via Return<>
    container from android::hardware.

Test: Compare dumpsys media.audio_policy A/B, check audio
Change-Id: I5e499bdd7196703c4f788d881f331eb9629bf790
diff --git a/services/audiopolicy/Android.mk b/services/audiopolicy/Android.mk
index b75e957..c577589 100644
--- a/services/audiopolicy/Android.mk
+++ b/services/audiopolicy/Android.mk
@@ -81,7 +81,7 @@
 LOCAL_SHARED_LIBRARIES += libmediametrics
 
 ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
-LOCAL_SHARED_LIBRARIES += libicuuc libxml2
+LOCAL_SHARED_LIBRARIES += libhidlbase libicuuc libxml2
 
 LOCAL_CFLAGS += -DUSE_XML_AUDIO_POLICY_CONF
 endif #ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)