Finish help function to list all commands
add .gitignore
adjust coding style
Implement echo flunction
Merge remote-tracking branch 'bcjhan/cmdtok'

Conflicts:
	kernel.c
remove trailing \0 in strings
adjust style of hint
simplify command-reading process

There must be no \r (Enter) character after each command.
Remove redundant global cmd_count
adjust coding style of check_keyword
adjust coding style for show_echo
adjust coding style for show_cmd_info

Conflicts:
	kernel.c
adjust coding style of write_blank
let command selection & call be dynamic

1. check_keyword checks each name in cmd_data.
2. cmdtok splits a command into argument tokens.
3. show_cmd_info shows name & description from cmd_data.
4. A command (process) can accept argc & argv.

Remarks:
CMD_COUNT is the count of currently available commands.
MAX_CMDNAME represents the limit of command name, excluding \0.
MAX_ARGC represents the maximum number of command-line arguments.
MAX_CMDHELP represents the limit of command description, excluding \0.
CMDBUF_SIZE manages the size of command buffer.

Conflicts:
	kernel.c
rewrite show_echo

It reads "command-line arguments", and accepts "-n" option.
try a simple built-in man

Conflicts:

	kernel.c
support environment variables & export

Let fill_arg fills in commands with environment variables.
refine command-reading process

fix upper-bound check of input
add history command

Conflicts:

	kernel.c

Conflicts:
	kernel.c
support backspace

Code returned in non-GUI seens to be different from GUI mode (127 vs. 8).
Thus, both values are checked to preserve correctness.