Change focus cycle so invisible and deactivated widgets are skiped

I also unified EventHandler::navigateUp/Down for easier maintenance.