Now message contains information which argument is the source of error.
It's easier to spot typo/understand which part of more complex command
is the source of problem.
Argument.scan handles simple string to numeric type conversions, removing
the need to create a lambda. Argument.action is still necessary for more
complex conversions and those are left unchanged.
Signed-off-by: Sean Robinson <sean.robinson@scottsdalecc.edu>
This change also explicitly lists the source files
for CMake. This is because `GLOB` does not remove
old files when switching branches in Git, and
`CONFIGURE_DEPENDS` will add unstaged files after
stashing.
See also: https://cmake.org/cmake/help/latest/command/file.html#glob