posix: timeout only applies to blocking I/O

see #227
diff --git a/serial/serialposix.py b/serial/serialposix.py
index 278ce47..dbc4c86 100644
--- a/serial/serialposix.py
+++ b/serial/serialposix.py
@@ -573,7 +573,7 @@
                 # see also http://www.python.org/dev/peps/pep-3151/#select
                 if e[0] not in (errno.EAGAIN, errno.EALREADY, errno.EWOULDBLOCK, errno.EINPROGRESS, errno.EINTR)):
                     raise SerialException('write failed: {}'.format(e))
-            if timeout.expired():
+            if not timeout.is_non_blocking and timeout.expired():
                 raise writeTimeoutError
         return length - len(d)