OBJ_LOADER_DEMO: Normalize the light direction
OBJ_LOADER_DEMO: Re-normalize after transforming

So the per-pixel interpolation doesn't interpolate more errors
OBJ_LOADER_DEMO: Only use a single sincos()
OBJ_LOADER_DEMO: Include the correct types and hlsl_util headers
OBJ_LOADER_DEMO: Explicitly define atan2(0, 0) = 0

This was causing any normal (0, 0, z) to be incorrectly encoded. The problem
stems from the fact that atan2(0,0) isn't defined. In our case, we can explicitly
define it to be 0, because we know how it will be used.