serialutil: add overall timeout for read_until

see #182
diff --git a/serial/serialutil.py b/serial/serialutil.py
index 636a10c..872080d 100644
--- a/serial/serialutil.py
+++ b/serial/serialutil.py
@@ -636,6 +636,7 @@
         """
         lenterm = len(terminator)
         line = bytearray()
+        timeout = Timeout(self._timeout)
         while True:
             c = self.read(1)
             if c:
@@ -646,6 +647,8 @@
                     break
             else:
                 break
+            if timeout.expired():
+                break
         return bytes(line)
 
     def iread_until(self, *args, **kwargs):