Send a ServerChatEvent before processing a chat request.
Add support for fake players from mods. Closes #175, #176, related #25.

Mods implementing their own fake player will now send events with
a corresponding Bukkit fake player. The fake player name will be
logged when first initialized, for example:

    [INFO] [FakePlayer] Initializing fake player: [RedPower]

You can then op this fake player or assign permissions appropriately.

The fake player name will be determined as follows:

* If the mod provides a name, it will be used
* If the mod does not provide a name, its class name will be used
* If a custom name is assigned, it will be used in all cases

The name can be overriden in bukkit.yml mcpc.fake-players, specifying
the mod fake player class name and the preferred username.

Thanks to Maeyanie for the original FakePlayer implementation from
https://raw.github.com/Maeyanie/BuildCraft/master/buildcraft/core/FakePlayer.java
Fix OBC 1.4.6 mapping caused by Maven relocation. Closes #186.

Maven shade relocation was rewriting our string literals, so the
OBC mapping was incorrect and not used.

Similar issue had to be fixed in CB for jline:
https://github.com/Bukkit/CraftBukkit/pull/883

Prevent the relocation by writing the strings as char arrays.

Improves compatibility with 1.4.6 plugins. Fixes LiquidDestroyer
crash on TNT explosions.
Add custom mobs to Bukkit's wrapper EntityType enum, for issue #16

Should help with some plugins, although an entity class will also
be needed for full compatibility.
Fix crash when placing blocks on RedPower2 timers. Closes #181.

Avoid sending Packet103SetSlot if there is no slot. Right-click on
a timer with a block would appear to place the block on the client,
but the server would recognize the click on a timer and open the GUI
on the client. Interesting logic from vanilla CraftBukkit:

// CraftBukkit - TODO CHECK IF NEEDED -- new if structure might not need 'always'. Kept it in for now, but may be able to remove in future

Added a null check, so now the GUI opens as expected.
Compensate for allow-nether/allow-end as false; Fixes BUKKIT-3466

When either of those settings are false, the worlds are not loaded and
therefore will not be targeted for portal exits.  Existing worlds are
iterated directly to avoid defaulting to the first world if a direct
dimension match is not found.

Plugins must also specify exit from custom Bukkit worlds to comply with
original commit: https://github.com/Bukkit/CraftBukkit/commit/2dc2af0

This commit introduces a constant to clarify the dependency on the
CraftBukkit implementation of custom worlds having a dimension offset.
Target default world when returning from The End; Fixes BUKKIT-3494

Due to the having to generate new logic to avoid using the customized
PlayerConnection.moveToWorld, entities returning from The End were not
properly calculating their exit target.  This commit corrects that
logic.
Verify the nether or the end is allowed before processing it. Fixes #189.
Merge branch 'master' of https://github.com/MinecraftPortCentral/MCPC-Plus