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.

CDF contains a vector and allocates memory.
But I create an instance of this class per shading point, in multiple threads.
And the number of closures is bounded.