This should avoid the errors we've been seeing in Sentry of:
```
MissingPluginException(No implementation found for method listen on channel net.defined.nebula/null)
```
To test, start up the mobile app in an android phone or emulator, tap the plus button to add a new site, and verify that no error log is shown.
Note: we still get a similar error when tapping the "Good Site" or "Bad Site" in debug, but I believe that is because it's being created too quickly before the EventChannel has a chance to be set up. Adding a site manually does not trigger the error.
This updates flutter to 3.24.1, the latest stable version, and also updates our flutter dependencies to latest.
It targets the latest android sdk, 34, which is required if we want to publish a new version to the Google Play store.
I also needed to make a few adjustments to handle deprecations. The biggest change is that I needed to wrap the main widget in MaterialApp to avoid problems with AdaptiveSwitch in iOS.