Added new Custom Entity classes for better plugin use.

* Moved all custom entity classes to our API.
* Custom Entity Types will now be added when each entity accesses
getBukkitEntity. This allows us to supply more classes to plugins as well
as add more custom methods to each type of class if needed in future.
* Fixed a few bugs from first custom entity commit.
Removed left over debug logging.
Fix ServerConfigurationManager createPlayerForUser method name mapping error

For Fighu's Command Mod compatibility
Fixed Twilight Forest portals not loading chunks before tp. Fixes #1082

Conflicts:
	src/minecraft/net/minecraft/server/management/ServerConfigurationManager.java
Fire WorldUnload event before removing world. Fixes #1087
Special-case Thaumcraft crucible to fix refilling creating a flood. Fixes #471.

Thaumcraft's crucible onBlockActivated always returns false (see MinecraftPortCentral/MCPC-Plus@62890c9b112d887fe919b6da51c99a4c76ae56fa),
rather than returning a flag indicating whether the crucible was filled.
In vanilla Forge, this is no issue, however in CraftBukkit the return value
is used and therefore both the crucible is filled with water, _and_ a water
block is placed on top of the crucible.

To fix this for now, detect whether we're filling a crucible and if so, never
place a water block. Fixes flooding when refilling Thaumcraft crucibles.
Add missing createPlayerForUser implementation
Add tameable animal Bukkit wrapper class. Fixes #1090.
Register Bukkit Environment when mods register their WorldProvider.

This should fix up any issues with MultiVerse not seeing environments for
worlds that don't get loaded at startup such as Mystcraft.
Fix NPE in placing Galacticraft moon turf. Fixes #1097.

Refactor Thaumcraft crucible bypass, adding missing null checks
Added worldgen and keeploaded world options to bukkit.yml. Fixes #1081

Fixes #1005, #1052, #1053, #1080, #1095

* Each mod world generator will now be automatically added to bukkit.yml
as they are registered by the mod. To disable worldgen from a specific
generator, set it to false. Note: Many mods rely on their world generators
so disable with caution.
* Environment keeploaded flags are now added to bukkit.yml as they are
registered. To prevent an environment from being unloaded, set it to
true. For example, if you want to prevent all dimensions using "the_end"
environment from unloading set "keeploaded-environment-the_end" to true in
bukkit.yml. Note: This has no effect on dimensions being loaded at
startup. It simply controls whether or not a dimension can be unloaded.
Prevent mods from initializing dimension if using same world provider.

Some mods such as Twilight Forest listen for specific events as their
WorldProvider loads to hotload the dimension. This fix prevents this from
happening so plugins such as MultiVerse can create worlds using the same
provider without an issue.
Disable hotloading dimensions for plugins due to memory leaks.

Many plugins don't handle hotloading worlds very well and end up causing
memory leaks. Also, many plugins use getWorld(String name) just to get
info about a world but end up hotloading the dimension even if no player
attempted to join it.
Fixed issue with permissions being ignored on full servers. Fixes #1112
Fixed some issues with permissions not working correctly.
Use creator's passed world generator during initDimension. Fixes #1113

* Fixed issue with TerrainControl not working properly with MultiVerse.
The world provider's dimensionId was being reset after world initialization
due to TerrainControl injecting its own WorldProvider.
Added support for Forge's getRespawnDimension. Fixes #1117
Ignore vanilla dimensions when using provider canRespawnHere. Fixes #1120
Fixed bug with world migrations not using configured overworld name.
Fixed PlayerRespawnEvent location with plugins. Fixes #1137