Updated Test Case, Fixed Subtle Bug

The test case for checking that a NotifyTarget deleted during a
Notify(…) sequence was not checking the deleted target.  Also, the
actual code was using a reference to the vector instead of a copy of
it.  While this may not seem to be  a problem at first, if the iterator
index is beyond the point where the item was removed from the vector by
the Detach(…) called (via its destructor), then an item in the list
would be skipped for a Notify.  For example, item A, B, C, and D are in
the list.  If the Notify(…) for B causes A to be deleted, then the next
index to call Notify(…) on would be D (originally it would have been C
at index 3, but D moved into index D when A was removed).  Subtle and
nasty.