Fixes and clean-up for evalfunction.c

I noticed an old typo while reviewing some other changes recently; the plural of index is indices.
The wording of the {read,parse}{string,int,real}array{,idx} function documentation needed improvements.  To make them I had to make sense of the code, to find out what the functions actually do, during which I noticed some char * variables that should be const and a parameter that the parse*array()s were ignoring.  Wrote a test-case to catch that and fixed it.