Reland codecs

Reland of pull request 236.

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.
Done