[C] Fire FoodLevelChangeEvent when eating cake. Fixes BUKKIT-2242

**The Issue:**
Currently, eating cake does not fire a FoodLevelChangeEvent, and therefore the hunger change cannot be cancelled or altered.

**PR Breakdown:**
This PR adds in the BlockCake class and then alters it to call a FoodLevelChangeEvent, in order to provide the missing functionality.

**JIRA Ticket:**
https://bukkit.atlassian.net/browse/BUKKIT-2242