Make entities destroy themselves.

This allows for other features to preempt the destruction.
Added an immortal property.

This intercepts Delete operations and ignores them, thus making an
entity "immortal".
Allow instant deletion of entities through world.

If a Delete op is sent to the World with an arg with an id set the
entity with that id is instantly deleted.
This provides an override mechanism whereby an entity can be deleted
directly, by an administrator. This in contrast to the regular delete
flow where a Delete op is sent to the entity itself, and thus can be
intercepted and cancelled.
Added property for respawning entity.

The "respawning" property makes an entity respawn instead of being
deleted. It intercepts the Delete op and instead of deleting the entity
it moves it to the specified spawn point.
A typical use case of this is to place the property on any user
controlled entity, thus making sure that it's never deleted and istead
respawned when killed or defeated.
Make spawns use entities and archetypes.

There's no reason to use the hacked in "contains" feature for creating
inventory. Instead we can rely on the Archtype features. Any entity
declaration for which we also want inventory created should use an
archetype.
The change is that the "contains" and "character_types" attributes are
removed. Instead there's a "entities" attribute, which is a map. The
keys are the names of the entities as seen to the client, and the values
are the entity specifications.
Made skeleton and goblin non-playable.

They appeared to be marked as playable to demonstrate the feautre more
than any other reason.
Check for null shape and prevent segfault.