Add additional CraftFakePlayer helper methods

Refactor fake player creation. Fake players can still be created
from mod EntityPlayers but now also with any username:

    getBukkitEntity(World world, String username, boolean doLogin)

getPossiblyRealPlayerBukkitEntity() is similar but will return an
existing Player object if the user is online, otherwise creating a
fake player. This is intended to allow mods to support player-
based permissions for world-altering machines, even when the player
who placed the machine is offline.
Update install instructions for SpecialSource
Add World trySetBlockAndMetadata for mod event support

Mods can call trySetBlockAndMetadata() instead of
setBlockAndMetadata() etc. to pass a fake player username
and send the appropriate Bukkit events. If the event is
cancelled, the call will return false, and the mod
should not proceed (i.e., not harvest the block).

Lightly tested - subject to change. Tested with block break
events using a quarry in a modified version of Buildcraft.
Disable automatic equiti of pcke dup items for players, and fixed index issues in Player.setCurrentItemOrArmor.
Revert Forge's disabling of canPlayerPickUp

Forge 529 sets canPlayerPickUp = false on EntityPlayer NBT
load. CraftBukkit however uses this flag to control player
item pickup, beyond vanilla's behavior:
https://github.com/Bukkit/CraftBukkit/commit/6e8781b6e40a97cfb85258472c28e162e73f1682
So we keep it set, allowing players to pick up items once again.
Fixed entity colision above max world height, and below 0. Closes #400
Change usage of ketSet/get to entrySet in OreDictionary, closes #422
clarify what the size is measured in for the dormant chunk cache. -.-
ItemStack sensitive versions of Item.getPotionEffect and Item.isPotionIngredient Closes #321
WorldGen*Trees shoud not respect custom soils. Closes #355
Added unload event for client worlds Closes #405
Add water and lava to liquid dictionary by default, closes #419
Bump version to 6.6.2, declaring Forge for MC 1.4.7 feature complete, as 1.5 is on the horizon, only bug fixes from this point on. Unless something major happens on Mojang's end.
Finish update to Forge 6.6.2.533
ItemStack sensitive versions of Item.getPotionEffect and Item.isPotionIngredient Closes #321
Add BlockChangeDelegate compatibility for Forge onPlantGrow

If the world object is not an instanceof World, fallback to
vanilla behavior instead of calling onPlantGrow. Fixes NPE when
attempting to grow big trees, since Bukkit uses a
StructureGrowDelegate BlockChangeDelegate instead of World.
Add BCD compatibility to WorldGenForest. Fixes #467
Updated README with Java Profiling info.
Add BlockChangeDelegate compatibility for Forge canSustainPlant()

If the world is not a World instance, will use vanilla behavior
instead of calling Forge's canSustainPlant() method with a null
world. Fixes NPE with Forestry http://pastebin.com/p8X1Vf4w.
Fix NPE in tree generation for canSustainPlant()

When BCD compat was added, moved the canSustainPlant() call
up, before the block != null check. This would cause a NPE
during world generation of trees and huge trees, if the block
was null. Added the missing check. Fixes http://pastebin.com/3GFVq1jB