Prevent reentrancy from changing the delegate list

Fixes #651 

@jlaanstra Do you think we should try to reduce allocations (i.e. some kind of Array.Copy to a preallocated array) instead of just calling ToArray here? Or should we not care?

@flagbug Once you fix this bug, you appear to hit a Xamarin.Forms weird bug where we blow up trying to fiddle with the action bar :(