refactor data providers/bindings API to be able to simply add/remove binding properties separately instead of add/remove the provider entirely when the data descriptor changes
Merge remote branch 'origin/dev' into dev