Polymer Designer: switch to JS to workaround <webview>'s problem with display:none

@rginda 

This makes PD work in the deployed code. dart2js is missing support for `<webview>`: that's what's broken PD in Dart.

Also, this PR maked the PD dialog dynamically sized to take as much space as is available in the CDE window (it uses the now-fixed spark-dialog for that), and adds more actions to the dialog.
I've switched to an encapsulated `PromiseCompleter` class since. Moving `onWebviewContentLoad_` to here won't help me eliminate the instance variable for the completer, since it's used elsewhere in the code (in `setCode`). Also, `load()` is not supposed to be called repeatedly: that's an error, and I've just added an exception-throwing check for that. How does it look now?