RFC: Introduce auto scope creation / deletion

This allows JS interop to be used without js.scoped(), although that
still works.  On first access, a scope is created and a callback to
exit the scope via runAsync (http://api.dartlang.org/docs/releases/latest/dart_async.html).

retain and release are still required for proxies that span multiple
events (e.g., see directions example).

Review URL: https://chromiumcodereview.appspot.com//13753006