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