[Bleeding] Implement ProjectileSource API. Addresses BUKKIT-391, BUKKIT-1038, BUKKIT-1156
[Bleeding] Implement setCharged and getCharged for WitherSkull. Addresses BUKKIT-3060
[Bleeding] Directly set direction in EntityFireball. Fixes BUKKIT-1154

Because EntityFireball.setDirection() adds a random offset to passed
parameters, it is not appropriate for use in an API method. As such,
the values need to be directly set to remain accurate.
[Bleeding] Use correct yaw and pitch when spawning arrows. Fixes BUKKIT-3320
[Bleeding] Fix support for several entities in World.spawn(). Fixes BUKKIT-3284