Finally got some basic shadows working.
Lights now use a rotation instead of a direction.

That is, a Quaternion instead of a Vector3.