[B+C] Implement method to get arrow itemstack and cancel item consume in EntityShootBowEvent. Adds BUKKIT-4686

<b>The Issue:</b>

Currently it is not possible to get the projectiles itemstack or stop it being consumed in EntityShootBowEvent.

<b>Justification for this PR:</b>

This PR adds the above mentioned capabilities to the event, through 3 new methods. getProjectileStack(), setStackConsumeCancelled(boolean), and isStackConsumeCancelled(). This allows these 3 things to be done, which prior to now were just not plausible through the bukkit API.

The use case this was designed for, is CraftBook Elemental Arrows. They were conceptualized many months ago but never saw the light of day due to bukkit limitations. I needed to get lore and names off arrows, and somehow put them onto the appropriate arrow entities. This would allow me to get the stack, so that I can properly do this and finish the feature that has been sitting collecting dust for 6 months.

<b>PR Breakdown:</b>

This PR grabs a copy of the stack of the arrow before it is removed, and creates a clone of it. This clone is then given the count of 1 so that it is only a single arrow. This is then sent to the event.

The consume cancellation uses the 'flag' field, which currently is used by vanilla when the player is in creative or has the infinity enchantment. The PR is also capable or forcing a arrow to be consumed even in creative/infinity enchantment due to this.

<b>Testing Results and Materials:</b>

I created a small plugin that tests the features outlined in this PR. It is available here, http://pastebin.com/ghJ4LUNh

<b>Relevant PR(s):</b>

B-917 - https://github.com/Bukkit/Bukkit/pull/917
CB-1228 - https://github.com/Bukkit/CraftBukkit/pull/1228

<b>JIRA Ticket:</b>

BUKKIT-4686 - https://bukkit.atlassian.net/browse/BUKKIT-4686