Added Operator switchIfEmpty

Like defaultIfEmpty but subscribes to and emits the items in an Observable if the source is empty.

Fixes #1878 
After `child.onCompleted()`, you should call `unsubscribe()`. Here is the test case:
```
    @Test
    public void testSwitchShouldTriggerUnsubscribe() {
        final Subscription s = Subscriptions.empty();

        Observable.create(new Observable.OnSubscribe<Long>() {
            @Override
            public void call(final Subscriber<? super Long> subscriber) {
                subscriber.add(s);
                subscriber.onCompleted();
            }
        }).switchIfEmpty(Observable.<Long>never()).subscribe();
        assertTrue(s.isUnsubscribed());
    }
```
In addition, L38 should change to
```Java
SwitchIfEmptySubscriber parent = new SwitchIfEmptySubscriber();
child.add(parent);
return child;
```