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.
cameras may now have inputs.
tweaked log message.
Merge pull request #458 from est77/microfacets_update

MDFs refactor work:
fixed compilation with Visual Studio on Windows.
minor code tweaks.
minor code tweaks.
small code fixes and tweaks.
bind textures to texture instances before binding camera inputs.
add diaphragm_map to thinlenscamera