Reapplied forge patches to PlayerInstance, Packet51MapChunk and

Packet56MapChunks. Void chunk issues were being caused by ChickenChunk's
Garbage Collector.
Added check for CustomChunkGenerator. Fixes #257.
Fix AIOOB with ArsMagica potions with IDs>32. Closes #165.
Update for Spigot CraftServer changes

Patch: https://github.com/EcoCityCraft/Spigot/blob/master/CraftBukkit-Patches/0002-Spigot-changes.patch
Spigot settings are now configured in a new org.bukkit.craftbukkit.Spigot class
Report crashes to MC Port Central, not md_5

Based on patch update https://github.com/EcoCityCraft/Spigot/commit/a1e8ebf5b9afeb96fc9adc78a414ee3c4917b9f4
Add oreobfuscator for Spigot.
Add option to disable Spigot's world setting logging

To prevent logging getting out of hand with mods adding
large numbers of new worlds, disable the Spigot log messages
for each world setting. You can re-enable this logging in
bukkit.yml with world-settings.default.verbose, if needed.
Use entity UUID instead of EntityID for metadata. Fixes BUKKIT-3582

The entity id is a non-unique, non-persistent value, and will cause
entities to lose their respective meta data on chunk unloading, and
teleportation.
Set CraftTravelAgent.DEFAULT to a non-null value. Fixes BUKKIT-3578

Currently, CraftTravelAgent will call s() on the passed-in WorldServer in order to set DEFAULT. However, s() will always return null at this point, because WorldServer.P will still be null, as it is set after the constructor is called. Instead, we set CraftTravelAgent.DEFAULT to the instance that is being constructed.
Check TravelAgent.findOrCreate(Location) for null; Fixes BUKKIT-3590

If a custom TravelAgent is used and returns null for findOrCreate method
a NullPointerException will occur.
Conflicts:
	src/minecraft/net/minecraft/server/PlayerList.java
Close inventory on teleport. FIXES BUKKIT-3021.
Fix wrong seperator used when creating Mystcraft dimensions. Fixes #266.
Add proper support for system file seperator.
Direct all BlockPlaceEvents to a singular location. Fixes BUKKIT-3438

By having a single function to process BlockPlacement logic, we make
it so that there is consistent behavior throughout all BlockPlace
events. This should allow for easier troubleshooting and less diffs
in source.

This also fixes BUKKIT-3463 by including the correct coordinates that
were clicked to the event.
Call BlockPlaceEvent for skulls the same as other blocks. BUKKIT-3406

When the skull BlockPlaceEvent was added it was made so the event
would be called after all the data has been set, however this is a
behavior change that is inconsistent with other BlockPlaceEvents.
Instead, if people wish to get the block data they should schedule
a task.

Relates to: BUKKIT-3438
Fix metadata loss in modded block placement event from BUKKIT-3438 fix

Allow all metadata to be placed in ItemBlock, instead of 0. Required
to allow placing mod blocks with metadata after fix introduced for:
Direct all BlockPlaceEvents to a singular location. Fixes BUKKIT-3438
Fix CraftBukkit/Forge block placement merge. Fixes #286, #274.

ItemBlock onItemUse is patched by both Forge and CB. Upon placement
Forge calls a new method placeBlockAt(), which mods can override to
add tile entities or otherwise configure their placed blocks. CB
handles all block placement in processBlockPlace(), where it
gets the block state, sets the new block, calls the event, reverts
the block state if the event is cancelled.

Prior to the last three commits (180), MCPC+ would fail to send block
placement events for mods which override placeBlockAt(), such as
GregTech. The "Direct all BlockPlaceEvents to a singular location"
merge (181) fixed this issue, but introduced a regression where the mods
placeBlockAt() was never called, causing #286 and #274.

This commit merges Forge and CB block placement changes, fixing
block placement and BlockPlaceEvent sending. Tested with:
- GregTech computer cubes
- Factorization barrels, routers
- RedPower2 lamps

CB's processBlockPlace() is now only used for its own NMS-patched
items, that is: bed, door, hoe, lilypad, redstone, reed, seedfood,
seeds, sign, skull, and slab. This continues to be the singular
location of block placement handling for those items, and is
unaffected by this change. ItemBlock, however, now sends the CB
event (copied from first half of processBlockPlace()), then defers
to the mod's placeBlockAt(). The default placeBlockAt() contains
the second half of processBlockPlace().

Some mods implement placeBlockAt() expecting setBlockIDWithMetadata()
to succeed, and do not complete the block placement otherwise.
This fails on CB since it sets the block before calling the event
(only to revert if it fails). A this.worldObj.callingPlaceEvent check
is added in Chunk setBlockIDWithMetadata to fix this issue.
Revert to sending block place events in Forge method. Fixes #310, #297.

This reintroduces issue #199, causing mods which override placeBlockAt()
to not send BlockPlaceEvents (same as in builds <=180), including
GregTech machines and RedPower lamps.

However, this fixes: #310 Thaumcraft disappearing items, #297 ICBM launcher dupe,
which were caused by placing duplicate tile entities. The Bukkit
BlockPlaceEvent requires the block is set in the world before the event
is set. If the event is cancelled, the block is reverted. The block
revert was problematic with mod items.

Reverting to the old method for now until a better fix is in place.
Split CB/Forge ItemBlock process calls. Fixes #199.

Added check to prevent potential item drops during a block place event.
Forge mods that override placeBlockAt will now properly call a BlockPlaceEvent in onItemUse.
Add repository containing MCPC-API