Optimize to use Phase State instead of Boolean Flag

As per discussion at https://github.com/ReactiveX/RxJava/pull/2243#issuecomment-68076845

Performance numbers are the same with this optimization:

with WriterReaderPhaser using phase state

```
Benchmark                                          (size)   Mode   Samples        Score  Score error    Units
r.o.OperatorMergePerf.merge1SyncStreamOfN               1  thrpt         5  4930586.615  1177558.483    ops/s
r.o.OperatorMergePerf.merge1SyncStreamOfN            1000  thrpt         5    26117.610      412.515    ops/s
r.o.OperatorMergePerf.merge1SyncStreamOfN         1000000  thrpt         5       25.466        0.775    ops/s
r.o.OperatorMergePerf.mergeNAsyncStreamsOfN             1  thrpt         5   102486.748     1377.611    ops/s
r.o.OperatorMergePerf.mergeNAsyncStreamsOfN          1000  thrpt         5        4.087        0.233    ops/s
r.o.OperatorMergePerf.mergeNSyncStreamsOf1              1  thrpt         5  4457316.389   363539.115    ops/s
r.o.OperatorMergePerf.mergeNSyncStreamsOf1            100  thrpt         5   473724.591    21719.743    ops/s
r.o.OperatorMergePerf.mergeNSyncStreamsOf1           1000  thrpt         5    40023.766     3562.388    ops/s
r.o.OperatorMergePerf.mergeNSyncStreamsOfN              1  thrpt         5  5220487.374   405664.161    ops/s
r.o.OperatorMergePerf.mergeNSyncStreamsOfN           1000  thrpt         5       23.860        1.395    ops/s
r.o.OperatorMergePerf.mergeTwoAsyncStreamsOfN           1  thrpt         5    78372.613     2185.710    ops/s
r.o.OperatorMergePerf.mergeTwoAsyncStreamsOfN        1000  thrpt         5     2189.509       30.923    ops/s
r.o.OperatorMergePerf.oneStreamOfNthatMergesIn1         1  thrpt         5  5168348.297   107791.880    ops/s
r.o.OperatorMergePerf.oneStreamOfNthatMergesIn1      1000  thrpt         5    38955.533     4054.434    ops/s
r.o.OperatorMergePerf.oneStreamOfNthatMergesIn1   1000000  thrpt         5       35.013        2.609    ops/s
```