Fix: Make sys.stdin non-blocking using fcntl

This has just started causing issues for me, you can see the exception here - https://gist.github.com/Kami/f7fbf7bc914fbd7d8474

After I dug into it, I have found this piece of code and this pull request.

Looking at this code, it seems we were just lucky that this worked in the first place (we probably just didn't encounter a case yet when no data was available on the socket yet when `.read` was called).

If you read from a non-blocking socket and no data is available, EAGAIN is thrown and you need to try the read again later. The problem is that we don't handle `EAGAIN`, so if `.read()` is called before any data is available, this exception will be propagated to the end user.

So in short - this code need to be fixed to handle `EAGAIN`.