OSLQuery: make default value array length match the type

OSLQuery: make default value array length match correct number of
elements for array parameters, even if the shader source didn't fully
initialize the array.  The mismatch between the std::vector size and the
size implied by the type of the paramter was confusing for client apps.
This also made odd looking oslinfo output in these cases.

To implement this cleanly, I needed to add a OSOReader::parameter_done()
callback, called at just the right point in parsing.