EMI: Implemented dynamic lighting for models.

Lighting is done by calculating vertex colors in software, since the attenuation model used in EMI cannot be simulated with OpenGL fixed function lighting. The original game does the lighting this way as well. Ideally for the modern shader-based renderer a shader would be used for this instead.
EMI: Only draw models for actors inside the view frustum.

This adds math classes for doing frustum culling in software. These could be used for optimizing performance in many other places as well. For example, if an actor is outside the view frustum, it may not be necessary to do expensive keyframe animation and vertex skinning calculations for that actor.
EMI: Implemented SetActorLighting.
EMI: Precompute the vector of enabled lights and the hasAmbient flag.
EMI: Avoid square root in light distance check.
EMI: Preserve light color when clamping to [0-1] range.

This makes the light color match the original more closely. The effect of this can be seen for example on Otis' shirt in set mel as well as on the contract on Elaine's table in set gmi.
Merge pull request #920 from Akz-/emi-lighting-rebase

EMI: Implement lighting for OpenGL and TinyGL renderers