audio: routing and volume control improvements

* Improve overall routing reliability
* Fix issue in which external speaker can remain enabled if the
  speaker was enabled during a call
* Enhance volume support to account for external amplifier.

Change-Id: I38d5f3fa6a422c5e7d0de52af6908e94edb30f72