py: Add TimeoutError exception subclassed from OSError.

The TimeoutError is useful for some modules, specially the the
socket module. TimeoutError can then be alised to socket.timeout
and then Python code can differentiate between socket.error and
socket.timeout.
diff --git a/py/mpconfig.h b/py/mpconfig.h
index 9f541ef..e92e4c4 100644
--- a/py/mpconfig.h
+++ b/py/mpconfig.h
@@ -462,6 +462,11 @@
 #define MICROPY_PY_BUILTINS_RANGE_ATTRS (1)
 #endif
 
+// Whether to support timeout exceptions (like socket.timeout)
+#ifndef MICROPY_PY_BUILTINS_TIMEOUTERROR
+#define MICROPY_PY_BUILTINS_TIMEOUTERROR (0)
+#endif
+
 // Whether to support complete set of special methods
 // for user classes, otherwise only the most used
 #ifndef MICROPY_PY_ALL_SPECIAL_METHODS