Bug fix: wasn't allocating enough space to hold param default values, if they were only partially specified in the shader source.
Bug fix: wasn't allocating enough space to hold param default values, if
they were only partially specified in the shader source.

An OSL construct such as

    shader foo ( float bar[4] = {0} )

where fewer array elements than the total were given defaults, would
result in only the number of defaults specified ending up in the .oso
file on the line for that symbol.  That should be fine, except that when
we read the file in to create the master, it's the actual default values
present that grew the vectors containing all the defaults or constants.

This fix grows the vectors IMMEDIATELY, and by the correct amounts, then
just fills in the default values as they are parsed.

This was entirely asymptomatic up until now, but new optimizations (that
I haven't submitted a review for quite yet) triggered crashes because of
this, and it took me a long time to really uncover why (since the bug
wasn't in code that was even remotely near my changes).

Review by: aconty

tectronics/openshadinglanguage,tectronics/openshadinglanguage,qdtk/openshadinglanguage,qdtk/openshadinglanguage,tectronics/openshadinglanguage,qdtk/openshadinglanguage,qdtk/openshadinglanguage,h3rb/openshadinglanguage,h3rb/openshadinglanguage,tectronics/openshadinglanguage,h3rb/openshadinglanguage,h3rb/openshadinglanguage