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
Vanilla only grants the achievement if the player has the parent achievement ("Into Fire" and "The End?" in this case).
So there should probably be a second method for awarding an achievement only if the players already has the parent achievement.
That method should then be used internally on every occasion where we want to update the progress of a player's achievements.
I just cannot think of a good name for that method. My only idea `awardAchievementIfHasParent` sounds somewhat bulky.