Simple cleanup for arg.{h,cpp}



Back story
==========
I wanted to do some cleanup of the interface between driver.cpp and log.cpp
and determined that

a) The optional functions that may be invoked while processing the arglist
take an argument as a char*. By design and use, the second argument should
be a const char*


b) All of the existing ArgumentDescriptors include a pointer to a variable
that will be modified if the ArgumentDescriptor matches; even if the 
descriptor references an update function.  I would like to be able to
write descriptors that rely only on the function-based interface and
enable the ability to set the location field to NULL.  Additionally I
noticed that the argument function might be called with "" even when
the location has been updated to a value.

This means modifying portions of arg.cpp to (i) handle the case where
the location pointer is NULL (ii) pass the actual value to the arg-setting
function along the paths where it does not.

I am taking this opportunity to do some cleanup in arg.cpp and will submit
the changes in several phases to simplify verification of the changes.





This submit
===========

1) Removed extraneous includes from arg.h

2) Removed unnecessary uses of "typedef" on the struct definitions.

3) Modified the typedef for ArgumentFunction to take a const char*
rather than a char*

4) Modified the signature for every use of ArgumentFunction to match.
No code changes were required in the body of any of these functions.

5) Shuffled the order of some functions in arg.cpp to group helper
functions with the uses of those helper functions.


Again: There were no changes to the body of any code.



Compiled:  STD clang on mac,  STD/LLVM gcc on chap01
Tested:    Ran a few chapel compiles and verified behavior
Review:    None





git-svn-id: http://svn.code.sf.net/p/chapel/code/trunk@23610 3a8e244f-b0f2-452b-bcba-4c88e055c3ca