We do some manual header insertion into the ROS2 bindings `.cc` file to fix some import errors. This commit skips copying of the `#pragma once` attribute at the beginning to avoid a C++ warning.
Use the subscriber type for downcasting to ensure that the correct type is used. Also, store an unique ID per subscriber to differentiate subscriptions of same type after merging.
Stream merging based on the cxx crate requires the bridge and the api to share an `ExternalEvents` type, which is only possible if the two bridge modules are defined in the same crate.