Prevent reentrancy from changing the delegate list. Fixes #651
Add WeakHandlerList that can be cloned when necessary.
Mark these as preserve or we'll crash on startup on full link
Merge remote-tracking branch 'origin/pr/671'