OSL improvements.

- Renamed microfacet2brdf to oslmicrofacetbrdf.
- Modified the shadowing masking functions to work on either side of the surface (for refraction).
- Switched default beckmann shadowing masking function to Smith G.
- Added oslmicrofacetbtdf.
- Removed fresnel terms from osl microfacet bsdfs (must be done shader-side).
- Prevent invalid values for params in the closure -> BSDF conversion code.
- Removed memory allocation in CompositeClosure.
- Aligned closures more closely to the spec.
- Various small fixes and improvemens.

Nope, `foundation::max()` is for three arguments or more. For two arguments the right function to call is `std::max()`.