IObservable<T> default values

(This PR is based on #135, start reviewing at "Give specs Platform flags")

Similar to #136, returning a value of `null` is never useful and often is very difficult to debug. Consider the following code:

```cs
someMethodThatIsMocked.GetAnObservable()
    .Where(x => x > 5)
    .Subscribe(x => Console.WriteLine(x));
```

Instead of seeing, "Oh I need to mock GetAnObservable", you'll get a crazy, 30-line stack crash deep in Rx.