esp8266: Disallow recursive calls to REPL.

Before this change, if REPL blocked executing some code, it was possible
to still input new statememts and excuting them, all leading to weird,
and portentially dangerous interaction.

TODO: Current implementation may have issues processing input accumulated
while REPL was blocked.
diff --git a/esp8266/uart.c b/esp8266/uart.c
index c4d08ea..9b2bfb4 100644
--- a/esp8266/uart.c
+++ b/esp8266/uart.c
@@ -234,6 +234,17 @@
 
 int interrupt_char;
 void uart_task_handler(os_event_t *evt) {
+    if (pyexec_repl_active) {
+        // TODO: Just returning here isn't exactly right.
+        // What really should be done is something like
+        // enquing delayed event to itself, for another
+        // chance to feed data to REPL. Otherwise, there
+        // can be situation when buffer has bunch of data,
+        // and sits unprocessed, because we consumed all
+        // processing signals like this.
+        return;
+    }
+
     int c, ret = 0;
     while ((c = ringbuf_get(&input_buf)) >= 0) {
         if (c == interrupt_char) {