audio: major routing improvements

* tinyalsa_bcm: update & implement support for subdevice selection
* implement proper audio routing via ALSA subdevice selection &
  enabling of telephony path via PCG_IOCTL_SETMODEAPP ioctl.
  This eliminates popping noises, and prevents unwanted routing back
  to the speaker under certain circumstances.
* Avoid buffer overruns if pcm_get_timestamp fails (reproducible by
  enabling wifi while playing audio on the headset).
* implement correct SCO (BT headset) routing.

Change-Id: I34a3d1cba5bc7654c8cdaf31723356cf7c5dbec9