Make local-audio demo capable of choosing codec.

This is meant to be used by WebRTC telemetry tests. The idea is to measure CPU usage for each codec we support on all platforms (including Android and ChromeOS).

This patch also fixes the call flow to be asynchronous when setting descriptions; the page will flakily fail otherwise.

If you wish to avoid the mild addition of complexity, I can create a new page instead (but then we'll get problems with duplication).
We can't assume these payload types, or else the demo won't work in other browsers (or Chrome if we change PTs). We should reference the codec by name here (e.g. "opus"), and then we can rearrange the type using routines like the ones in AppRTC's sdputils.js