Added ContainerInteractEvent

- Used to interrupt whether a container should or should not close
Added method canInteractWith in ForgeHooks (minimising patch)
 - This returns false if the event is cancelled
 - Default is container.canInteractWith
Added methods to get associated tileentities for:
 - ContainerFurnace
 - ContainerDispenser
 - ContainerBrewingStand
Added methods to ContainerWorkbench
 - getWorldObj()
 - getPosX()
 - getPosY()
 - getPosZ()