Fan now has blocking behavior

Added heap.lua for priority queues. I'm using them for raycasts to
quickly get the closest object to be hit by a ray.

If you spam test seeds it will cause some of the force to get through,
but the player won't be spamming test seeds.