BlockingObservable Refactor

- No longer extends from Observable. If someone chooses to use BlockingObservable the intent is to leave the Observable so it shouldn't show the non-blocking operators.
- Remove duplicate static methods, similar to how done on Observable in earlier commit.