Provide a faster way to get a location. Adds BUKKIT-3120

Currently when a plugin wants to get the location of something it calls
getLocation() which returns a new Location object. In some scenarios this
can cause enough object creation/destruction churn to be a significant
overhead. For this cases we add a method that updates a provided Location
object so there is no object creation done. This allows well written code
to work on several locations with only a single Location object getting
created.

Providing a more efficient way to set a location was also looked at but
the current solution is the fastest we can provide. You are not required
to create a new Location object every time you want to set something's
location so, with proper design, you can set locations with only a single
Location object being created.
Add FurnaceExtractEvent. Addresses BUKKIT-2114

Added a "BlockExpEvent" to hold experience and the handlers for the events
An executor set to null will now use the plugin. Fixes BUKKIT-3127
Add isSolid() to Material. Adds BUKKIT-3131

A 'solid' material indicates that it is a block and cannot be passed
through.
Bump JUnit version
Add EntityEquipment API. Adds BUKKIT-3103
Add Material methods. Adds BUKKIT-3161, BUKKIT-3162, BUKKIT-3163,
BUKKIT-3164

This adds an isFlammable method, to indicate if a block can catch fire.

This adds an isTransparent method, to check if light can pass through.

This adds an isOccluding method, to check if it fully blocks vision.

This adds an isBurnable method, to indicate if a block can burn away.
Add ItemMeta factory and interfaces. This adds BUKKIT-15

Included with ItemMeta is a new serializable class Color.

PotionEffects are now serializable.
Clarify functionality in Inventory. Fixes BUKKIT-3097

Mainly javadoc changes to be specific in functionality and outcomes. This is
mixed with specifying that null Material should throw IllegalArgumentException
instead of the previous undefined NullPointerException.

Included is a clarification on how contains(ItemStack, int) works, and a new
method containsAtLeast(ItemStack, int) for counting the number of a specific
item.
Deprecate methods in JavaPluginLoader and PluginClassLoader

These methods are unnecessarily exposed. They are specific to a type of
implementation for the class loaders, and should have no external use.
Because these methods are exposed, it limits the versatility to change
how the internal class loading system works, including an inherent class
loader leak for some situations.

They are now replaced with internal, package-private methods. The public
facing methods will print a stack trace the first time one is activated.

Extending the classes also produces a stack trace, to indicate that
extension is not actively supported.
Fix MaterialData directions being incorrect. Fixes BUKKIT-3160

Prior to 49690f9, BlockFaces were mostly correct in their respective
MaterialData classes. However, a lot of things were not updated since
implementation and broke without being addressed.

This fixes any discrepancies with Block data.
Refactor get/setChestPlate to Chestplate. Addresses BUKKIT-3189

This method was inconsistent with previous methods.
Apply commandBlockOutput to broadcastMessage. Addresses BUKKIT-3117
Updated version to 1.4.5-R1.0 in pom.xml for RB.
Updated version to 1.4.5-R1.1-SNAPSHOT for development towards next release.
Update Bukkit to Minecraft 1.4.6
Add API to allow plugins to request players switch to a texture pack. Adds BUKKIT-2579

The setTexturePack method causes the player's client to
download and switch to a texture pack specified by a URL.

Note: Players can disable server textures on their client, in which
case this API would not affect them.
Add FireworkEffect and respective item metas. Adds BUKKIT-3236

FireworkEffect is an immutable class that requires the builder pattern
to construct, to reduce ambiguity and help make code uses more readable.

FireworkMeta contains a list of effects, as well as a flight height.

FireworkEffectMeta contains a single effect for charges.
Add enchantment storage meta. Adds BUKKIT-3237

Books can 'store' enchantments that can be applied to other items later.
These enchantments exist seperately of enchantments that actually effect the
item, and are as stated 'stored' in the book instead of the book being
enchanted. The meta is generically named as the concept could be applied to
other item types later, such as a enchantment scroll.

All of the methods mimic those in the base meta, but instead specify
'stored' in each method name.
Add Skull BlockState and Type enum. Adds BUKKIT-3258