Netflix/RxJava — pull request #190 by prabirshrestha (2013-03-13 20:40:56+00:00)
Title: update dematerialize so can chain correctly

Just noticed this when I actually had to chain it.

```java
Observable saveResult = ....;
```

current:
```java
Observable> a = saveResult.materialize().dematerialize();
```

expected:
```java
Observable a = saveResult.materialize().dematerialize();
```

here is what is happening

```java
Observable x = saveResult;
Observable> y = x.materialize();
Observable> currentResult = y.dematerialize();
Observable expectedResult = Observable.dematerialize(y);
```

workaround is to use static method to get the expected result.

With this change you can chain correctly. Added unit test.

```java
Observable obs = Observable.just(1);
Observable chained = obs.materialize().dematerialize();
```

This will be a breaking change. But I think this is the expected way.