esp8266: Implement input part of dupterm handling.

The idea is following: underlying interrupt-driven or push-style data source
signals that more data is available for dupterm processing via call to
mp_hal_signal_dupterm_input(). This triggers a task which pumps data between
actual dupterm object (which may perform additional processing on data from
low-level data source) and input ring buffer.
diff --git a/esp8266/main.c b/esp8266/main.c
index 4fc7757..bf68ebc 100644
--- a/esp8266/main.c
+++ b/esp8266/main.c
@@ -69,6 +69,7 @@
     mp_reset();
     mp_hal_stdout_tx_str("\r\n");
     pyexec_event_repl_init();
+    dupterm_task_init();
 }
 
 void user_init(void) {