Fix quadtree rendering bug

This caused some neat effects (shimmering points along quadtree boundaries), but alas it's a bug and not really something I want to keep :)

The problem occurred for rays that both originate and intersect within the same quadtree node. intersectAABB() wasn't returning the result we wanted in this case. Fixed the bug by clarifying intersectAABB()'s interface, making it work for rays that are already inside the AABB under test, and created a separate intersection primitive for the intersectBounds() use case, where we want different behavior for rays that begin within the AABB under test.