#163. Change the callback list to a list of WeakReference so DynamicPropertyWrapper objects can be GCed in time. Add unit test to confirm that weak reference works as designed.