Fixed NullReferenceException while converting

Previously the implicit conversion operator threw a NullReferenceException because no null check was performed.

When checking for null, compiling a shader directly inside a using clause and returning null if no entry point is given, is possible.

e.g.
using (ShaderBytecode geometryShaderByteCode = (!String.IsNullOrEmpty(geometryShaderEntryPoint)) ? ShaderBytecode.Compile(uncompiledShaderBytes, geometryShaderEntryPoint, ShaderModel5.GeometryShaderProfile) : null)
Removed unnecessary casts and added conversion in D3DCompiler-Namespace

Also added conversion for D3DCompiler-CompilationResult