Implemented #24579 - App commands can now take an optional argument list

By specifying *args in the argument list for the command callback, App
commands can now take optional arguments when invoked from the shell
engine.