Fix stream API.

The zombese implementation assumed synchronous interactions which can break clients depending on the event/initialization ordering. To be consistent with real browser behavior, all events should be asynchronous. Furthermore, the `onaddstream` event was fired for local streams instead of remote streams and no remote stream was ever emitted. This change corrects all these issues and creates a way to differentiate between local and remote media streams using the stream URLs.