Fix observeOn() invocation order.

It should be called before lift() so that the operator can observe it on the main thread.
This change also adds some test for other bindXx() variants to get better coverage.