Implemented two level BVH

Instead of creating a new structure, the current BVH is just made more flexible
to allow easy embedding of other BVHs inside it. This should allow to have a
unique structure with no extra code bloat and a negligible performance loss (in
particular with ray packets)