Ender portals

Ticket #325 

This adds the ability to place eye of ender into the ender portal frames. Once placed the surrounding blocks are scanned for a complete ender portal and if one is found the ender portal blocks are placed.
This also adds directional placement of ender portal frames and teleports the player/entities into the End / the Overworld on contact with an ender portal block.

Note that for a full portal to be formed, the last ender portal frame must point inwards in vanilla minecraft due to the way it detects the rest of the portal. The orientation of all other blocks is not checked. This is not the case with this PR, every orientation of the last portal frame will be sufficient to generate the portal.

The following events are now thrown for End portals:
- EntityPortalEvent
- EntityPortalEnterEvent
- EntityPortalExitEvent
- PlayerPortalEvent
- EntityCreatePortalEvent
Do this and the other method need to be public? Would `protected` suffice?