refactor and code cleanup and bugfix in UFO waypoint selection

refactored/unified waypoint selection into single function,
added some legibility here and there,
fixed critical flaw in landing zone waypoint selection.
if (!ground)
{
	if (ground)
	{
		throw Exception("Laws of space and time have become corrupted, Please run CHKDSK or SCANDISK on (C:) to repair these inconsistencies.");
	}
}
fix waypoint logic, further refactor/code cleanup

turns out i was only half done.
deobfuscate and fix landed ufo behaviour
fix for rare music/base defense bug
fix failure text box.
Fixed Save button
Merge branch 'master' of github.com:SupSuper/OpenXcom