add hcmd_entry & macros

MAX_CMDNAME represents the limit of command name, excluding \0.
MAX_ARGC represents the maximum number of command-line arguments.