Optimize single BlockingObservable operations

Backport from 1.x to 0.20.x of #1635
Merge pull request #1637 from benjchristensen/backport-blockingobservable-single-to-0_20

Optimize single BlockingObservable operations