Fixed first emission racing with pre and post subscription.

There was a subtle race between the subscription and emission which delayed the delivery of the first emission if it happened between the pre- and post-subscription of a subscriber. The fix is the same logic used by the BehaviorSubject to avoid the same problem.
> A subscriber arrives before the onNext and thus not yet visible for the caughtUp

That would mean it doesn't receive the `onNext` and it should receive that value on the next event. That sounds pretty normal for a natural race condition like this. Why wouldn't the next `onNext` or terminal event take care of catching up?

And what is the `synchronized` doing? I don't see how it is ever synchronizing between threads since `onAdded` would only be invoked once and we don't synchronize inside `onNext`.