Modified qdel() to accept any datum.
The garbage controller no longer bothers nulling out every variable on destroyed objects.
An object can opt to not be collected by returning true from Destroy().  Useful for pools or other edge cases.
Fixed boxes not being collected, along with a couple other things.
Turfs will not be monitored for collection.
generate_ion_law() is no longer a /datum proc, and I am an admin in the repo.  Deal with it.
Undid the silly rename I made weeks ago.
Prevented repeated qdel calls from calling Destroy multiple times for non-pooled objects.
Ensured that newly qdel'd objects are added to the end of the `destroyed` list.
Merge branch 'qdel-with-datums'

Conflicts:
	code/_onclick/hud/screen_objects.dm
	code/controllers/garbage.dm
	code/game/atoms.dm
	code/game/objects/items/weapons/storage/storage.dm
	code/modules/mob/mob.dm
Merge pull request #3168 from YotaXP/qdel-with-datums

Modified qdel() to accept any datum, among other things.