added a new portal search algorithm to replace the current one

- the new search algorithm begins searching at the given location
(center) und searches stepwise
- with each search step, the search region is enlarged in all
directions (x, y, z)
small changes and code cleanup (removed unneccessary code)

- changed the function generateNether() to return boolean value
- removed openPortal() because not needed anymore
- removed some outcommented code
the names of overworld and nether are now determined in a new way to allow world names with unterlines
findPortal() now returns the lowest block of the first 6 blocks that are found by the search-algorithm
changed findPortal to find only the two blocks at the bottom of a portal

the vanilla code searches only for the two portal blocks which are
above an obsidian block, so we do just the same
some fixes in the buildPortalFrame method

- corrected the values of end_x and end_z to remove more blocks around
the portal
- added a list of materials that shall be removed around the portal
fixes in getReverseLocation to actually find a safe location for the portal

- the minimal y value is now 32 again (was changed during some tests)
- moved the "above" and "below" locations out of that if-block to
enable usage in the last else-block
- added boolean variable "changed" to check if portal_location has been
changed if not, set the y value to 32 and is_safe to -1  (-1 tells
buildPortalFrame to build a platform to avoid falling into lava)
generateNether now uses the WorldManager from Mutliverse to load the new nether

this code is experimental and currently throws a NullPointerException
when calling the addWorld method
onPlayerPortalEnter now uses the new search algorithm

- the new search algorithm works better than the old one and speeds up
the whole process
- generateNether is currently used in onPortalCreate but will be used
in onPlayerPortalEnter in the future