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.

I'm confused about what is float and what is double here :) Please add explicit `static_cast<>`s when from from float to double and vice versa.