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:
BlockPlaceTest plugin source
https://github.com/bloodmc/TestPlugin/tree/BUKKIT-5641
Use the command /forcecancel to toggle BlockPlaceEvents to be cancelled or not

## Relevant PR(s):
https://github.com/Bukkit/CraftBukkit/pull/1313

## JIRA Ticket:
https://bukkit.atlassian.net/browse/BUKKIT-5641