OSLQuery: reliably tell when no constant default is available for a param.

There's always been a 'validdefault' field in the OSLQuery::Parameter
structure, but it was always set to true.

* oslc -- add a %initexpr hint in the oso for parameters that are initialized
  by expressions (like myparam = u, or myparam = noise(P), i.e. is not a
  constant value at shader compilation time.

* oslquery -- if this hint is encountered for a parameter, mark its
  valliddefault = false.

Thus, a program using OSLQuery ought to be able to check the validdefault
field, and if it's true, the default constant is valid, but if it's false,
you can't count on the default constant being the true default.
Optiization: Be less conservative in implementation of unread_after().

It was really implemented as if it were "unread AT OR after". It's used
to determine whether it's safe to elide assignments to variables that
aren't subsequently use. But sometimes the assignment is a function
where the variable assigned to is also one of the arguments. For
example,
    x = func(x,y)
x is read on that op, but not AFTER. But because of how the unread_after
also discounted elision if used on that op, it was less aggressive than it
could have been in eliminating statements like this.