GRIM: Set g_grim to nullptr in the deconstructor
EMI: GetActorPuckVector should return nil for actors that have never followed walkboxes.

In Lua, The wear chore of dumbshadow.cos is only started if GetActorPuckVector returns a non-nil value. In the original game GetActorPuckVector seems to always return nil until a call is made to SetActorFollowBoxes.

This fixes the candles not appearing in the set gmi. The original Lua code only starts the candle animation if the candle actor is not playing any chores. Previously the wear chore of dumbshadow.cos was playing, so the animation was never started.
EMI: Don't set global alpha to 0 when light mode is set to LIGHT_NONE.

Fixes sprites not appearing in various places. For example the lights on Stan's house now show up.
EMI: Add support for additively blended sprites.
EMI: Read vertex color values from sprite files.

This makes the coals in wed more transparent, matching the original game better.
EMI: Draw model faces with alpha textures also to the depth buffer. Fixes #874
EMI: Skip chores that are internally marked as stopped when drawing components.

The playing chores list may contain chores that have been stopped during the current frame. Stopped chores will be removed from the list on the next costume update. Drawing stopped components caused flicker when entering the closeup at Stan's house.
EMI: Sprite drawing fixes for OpenGL Shaders renderer.
EMI: Read depth write and alpha test flags from sprite files.
EMI: Print warning if an unknown blend mode value is encountered when parsing a sprite file.
GRIM/EMI: Move implementation of setFollowBoxes from header to source file.
EMI: Clean up sprite drawing in OpenGL.
EMI: Share Materials between Costumes.

Sometimes a texi component may refer to a material that was initialized by some other costume than the owner costume of the texi component. For example, the candles in gmi have a costume "fx/aura1.cos" that controls the animation of a material originally initialized by a sprite component of "fx/candle.cos".
EMI: Sprite fixes for TinyGL renderer.

Note that most of this is currently commented out due to lack of proper blending in TinyGL. Once blending is properly implemented the commented out parts can be enabled.
Merge pull request #944 from JoseJX/FixHeads

GRIM: Fix the head tracking broken by the changes to Rotation3D
MATH: Cast M_PI to a float to fix an MSVC warning
Merge pull request #938 from Akz-/emi-sprite-fixes

EMI: Sprite fixes
Merge pull request #939 from klusark/grimnull

GRIM: Set g_grim to nullptr in the deconstructor
GRIM: Remove _matrix from Component

Mesh is the only component that actually usees _matrix, and it
has it's own local _matrix variable. This remove the confusion over
which _matrix variable is actually used and removes saving _matrix
for all the components that don't use it.
Merge pull request #856 from klusark/matrix

GRIM: Remove _matrix from Component