audiopolicy: Refactor XML deserializer for the APM config

 -- Move deserialization traits classes into the .cpp file;

 -- Use unique_ptr for managing libxml objects lifetime;

 -- Define node and attribute names inline. This makes them
    inlined in the code, but that's OK since they are typically
    only used once.

 -- Avoid using reference types for "out" parameters.

 -- Check the status of deserializing collections.

 -- Misc renamings and generalizations for clarity.

Test: Compare dumpsys media.audio_policy A/B, check audio
Change-Id: Ib188964dee94acbccd701a58d45d3df206487d81
3 files changed