Adding support for EntityPool

Deferred entity removal now calls the entity's clean method, if it exists.

Should fix #1.