Replaces AtomicReference with a length 1 array

This patch replaces the usage of an AtomicReference in BlockingObservable::forEach to hold
an exception set from within a closure with an array of length 1, thus avoiding the cost of
the memory barriers issued when the AtomicReference's internal volatile field is accessed.