Dynamically allocate user_effargs argv array
Dynamically allocate user_effargs argv array

Instead of using an array of FILENAME_MAX elements for storing
the arguments to effects within the user_effargs table, allocate
memory as needed.

This reduces memory usage greatly in the majority of cases (when
the number of arguments is much less than FILENAME_MAX) while
allowing more than FILENAME_MAX arguments in exceptional cases.
For illustration, here are the valgrind memcheck heap usage
statistics for a fairly complex SoX command line involving three
effects chains with a total of twelve effects (on my 64-bit
Linux system):
before: 361 allocs, 356 frees, 3,223,206 bytes allocated
after:  367 allocs, 362 frees, 1,815,254 bytes allocated

CaptainHayashi/sox,MageSlayer/sox,uklauer/sox,cbagwell/sox,Distrotech/sox,uklauer/sox,pcqpcq/sox,jacksonh/sox,uklauer/sox,MageSlayer/sox,Distrotech/sox,Motiejus/sox,mhartzel/sox_personal_fork,mhartzel/sox_personal_fork,cbagwell/sox,cbagwell/sox,Distrotech/sox,jacksonh/sox,uklauer/sox,mhartzel/sox_personal_fork,CaptainHayashi/sox,Distrotech/sox,mhartzel/sox_personal_fork,davel/sox,Motiejus/sox,jacksonh/sox,CaptainHayashi/sox,cbagwell/sox,davel/sox,Motiejus/sox,jacksonh/sox,MageSlayer/sox,MageSlayer/sox,CaptainHayashi/sox,pcqpcq/sox,MageSlayer/sox,davel/sox,davel/sox,pcqpcq/sox,pcqpcq/sox,Motiejus/sox