Perform additional checks on qdel(), add some docs.
SINGULOTH OPTIMIZATIONS - See full commit for details.
* qdel() instead of del(), wherever possible.
* Optimized gravpull logic
* /atom/movables can override canSingulothPull() logic to add gravpull exceptions (unless singuloth is 2fat)
* assigned_role energy boosts changed into a switch() statement

Conflicts:
	code/modules/mob/living/carbon/human/human.dm
	code/modules/mob/mob.dm
	code/modules/power/singularity/singularity.dm
Missed a qdel in narsie.