Improve support for embedding multiple instances of Flambe

First-pass changes to support multiple Flambe instances on a web page.

- HtmlExternal now binds functions to the embed target, rather than `window`.  This is more consistent with the way it works for Flash and also allows interaction with multiple instances of HTML5 flambe.

- `flambe.embed` can take a callback that is fired when embedding is complete.  This could be used, for example, to embed multiple flambe instances in sequence.

- constructing multiple `AudioContext`s sometimes throws an error (at least on Chrome), so this may now fail silently.