Fixed many world memory leaks when unloading worlds. Fixes #652

* Fixed memory leak with player compassTarget after changing dimensions.
* Fixed memory leak with CraftServer.worlds not removing the unloaded
world object.
* Fixed memory leak in CraftEntity.
* Added new CraftCustomEntity which will be used for any mod that directly
extends net.minecraft.entity.Entity.
* Added new 'world-leak-debug' config option to bukkit.yml. This option
controls Forge's world leak messages. Due to the nature of how WeakHashMap
works, it is possible for Forge to report a false-positive memory leak
before GC has cleaned up weak references to unloaded world objects.
* Refactored DimensionManager.unloadWorlds to process unload through
CraftServer.unloadCraftWorld.