MDFs refactor work:

- Added a base class for MDFs.
- Added the possibility to implement anisotropic MDFs in the future.
- Decoupled the distribution function and the geometric attenuation function for Beckmann and GGX MDFs.
- Added a new Microfacet2BRDF, that's compatible with the OSL spec.
- Added support for OSL's microfacet closures (only reflection for now).
- Added unit tests.
Only register Microfacet2BRDF in debug builds, for testing.
Added the corresponding masking-shadowing functions for MDFs.
Fixed PR comments.
Updated OSL closures test scene.
Fixed last PR comments.
Removed render region from OSL closures test scene.
Merge pull request #458 from est77/microfacets_update

MDFs refactor work: