fix local variable initialization in lsort
add clipped surface side visibility routines for given bbox
build separate shadow lists for each side of the surface
build separate surface lists for each side of the surface