add DataProvider.unwatchProperty() protected method to unwatch a property and refactor other methods to use it
fix coding style
add DataProvider.dispose() method to remove/unwatch all properties and free the memory
fix big memory leak/performances leak because of trailing callbacks by calling DataProvider.dispose() in MeshController.removedHandler()