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
I don't think this should be considered a bug. From JavaDocs:
`Called when an entity comes into contact with a portal`
The event is for touching the portal, not for using it, so it should still fire even if the End is disabled. It might also be used by some teleport plugins to create custom portals which are supposed to work as well with End disabled.