Add special case for handling BlockPlaceEvent with water lilies. Fixes Bukkit-5641

## The Issue
When placing a water lily, no BlockPlaceEvent is called.

## Justification for this PR
To properly send an event when placing a water lily.

##PR Breakdown:
Before calling world.setTypeUpdate, I save a blockstate. After placement has occured, I fire a BlockPlaceEvent with saved blockstate in case a plugin wants to cancel it. If event gets cancelled, I revert the blockstate and return the itemstack.

##Testing Results and Materials:
I tested in a fresh eclipse workspace by adding debug output in CraftEventFactory.
[18:10:30 INFO]: blockClicked = CraftBlock{chunk=CraftChunk{x=22z=12},x=365,y=62,z=206,type=WATER,data=0}, placedBlock = CraftBlock{chunk=CraftChunk{x=22z=12},x=365,y=63,z=206,type=WATER_LILY,data=0}
The correct block data is sent through BlockPlaceEvent.

##JIRA Ticket:
https://bukkit.atlassian.net/browse/BUKKIT-5641