Track and remove bindings for AddDataTo
Currently the AddaDataTo method for the client-side extension SDK registers bindings with the kuadrant operator to add to the dataplane.
Deletion is handled through the extension controller by the use of Finalizers and the ClearPolicy method that removes all bindings (and subscriptions) for an extension policy.
However, if there's a case that the extensions controller reconcile logic changes the binding, there may be orphaned bindings left present in the kuadrant-operator. An example of which comes from the TelemetryPolicy case:
The developer registers a binding for user: auth.identity.user but then changes their mind and updates the policy to contain username: auth.identity.user. This results with AddDataTo called twice, once for our first reconcile with user, once for the second with username. The final state will be the user binding leftover in the kuadrant-operator. To solve this we will need a new grpc method to clear a subset of bindings, and the client-side controller will need to keep track of the bindings for each reconcile and explicitly tell the kuadrant-operator to remove the stale/orphaned bindings.