Added Operator switchIfEmpty

Like defaultIfEmpty but subscribes to and emits the items in an Observable if the source is empty.

Fixes #1878