Use enum to define my command return value
Support "history" command. Fix a bug which cause empty string in **history.
FIX:
    linenoiseHistoryAdd("") should only initialize for current command.
So It isn't necessary to move history_len to next memory address.
Otherwise, It will save the empty string which only include '\0'
to history.

In this commit, I also add a script to test it.