zoom: Call weston_output_activate_zoom() appropriately

No longer call weston_output_update_zoom() when trying to zoom out
on an unzoomed output.

Add an assert() to make sure update_zoom is never called without an
active zoom.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 9e3701f..48bee34 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -4804,7 +4804,10 @@
 				output->zoom.level = 0.0;
 			else if (output->zoom.level > output->zoom.max_level)
 				output->zoom.level = output->zoom.max_level;
-			else if (!output->zoom.active) {
+
+			if (!output->zoom.active) {
+				if (output->zoom.level <= 0.0)
+					continue;
 				weston_output_activate_zoom(output);
 			}