Fix serial console terminal issue and extract same logic to be helper function (#171)

## Problem
When using terminal through serial port (baud rate: 115200, Parameters: 8N1) with Inquirer.js. I found the render is very strange.
Please see following examples.
###### The First Example
```shell
node examples/pizza.js
Hi, welcome to Node Pizza
? Is it for a delivery: (y/N) abc
```
Press <*backspace*> key and result in:
```shell
node examples/pizza.js
Hi, welcome to Node Pizza
? Is it for a delivery: (y/N) abc? Is it for a delivery: (y/N) ab
```
Right, the whole question with answer (**? Is it for a delivery: (y/N) ab**) was rendered again in a wrong position.
###### The Second Example
```shell
Hi, welcome to Node Pizza
? Is it for a delivery: No
? What's your phone number: 2222222222
? What size do you need: (Use arrow keys)
❯ Large 
  Medium 
  Small
```
Press <*Down*> key and result in:
```shell
Hi, welcome to Node Pizza
? Is it for a delivery: No
? What's your phone number: 2222222222
        ? What size do you need: 
  Large 
❯ Medium 
  Small
```
Right, The question (? What size do you need: ) was shifted and aligned with (❯ Medium ).
###### The Third Example
```shell
Hi, welcome to Node Pizza
? Is it for a delivery: No
? What's your phone number: abc
```
Press <*Enter*> key and result in:
```shell
Hi, welcome to Node Pizza
? Is it for a delivery: No
                                    ? What's your phone number: 
>> Please enter a valid phone number
```
Right, the whole question with answer (? What's your phone number: ) was rendered again in a wrong position and was aligned to the error message ( >> Please enter a valid phone number ).
## Troubleshooting
To investigate this issue for two days. And also tried several approaches to workaround this issue but can't get a good result.
Eventually I found this was caused by wrong terminal info, that is, the result of ```process.stdout.rows``` and ```process.stdout.columns``` are ```0```.
## Solution
To solve this we can force the cursor to move to the leftmost position so the rendering will start from the beginning of column.
This will require a takeUntil