web-extensions: Release EphyWebExtensionProxy when the web extension is destroyed

We were leaking all EphyWebExtensionProxy objects because they were
released when the bus named was unwatched, and we were unwatching the
name in the object dispose method. So, now unref the object when the
name is vanished instead. Also added a GCancellable to use in all async
operations.