[Bleeding] Re-add EntityShootBowEvent lost in e93a3eb3b4c5234e3e3936bc697d566a42d3b30e. Fixes BUKKIT-4214

In the 1.2 update for CraftBukkit, a missed diff resulted in Skeletons no longer firing an EntityShootBowEvent when they shoot an arrow.
Add methods to get and set arrow knockback. Adds BUKKIT-5103
Add setCritical and isCritical methods to CraftArrow.java. Adds BUKKIT-5113
Add files for diff visibility.
[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
[Bleeding] Implement setSignalDestination and getSignalDestination in EnderSignal. Adds BUKKIT-5320