Ensure StringObservable.from() does not perform unnecessary read 

An extra check is useful to check for unsubscription because as is even ```StringObservable.from(InputStream).first()``` performs two reads and the second read may block. 

Added another check just before the ```InputStream.read()``` and simplified the initialization of ```n```.