Really fix windows that are maximized on startup

It seems that setting the xprop on an already maximized window doesn't
actually take effect immediately.
71faafb1ec6e90935e1771532c8bb0962240abb0 tries to fix this by
remaximizing these windows after calling xprop to force a redraw.
It seems that on at least some systems this doesn't work because:
 - Util.MAXIMIZED isn't defined (tested on 3.12)
 - Util.spawn runs xprop in the background, so it the property might not
   have been set when the maximize runs
 - Just maximizing isn't (always?) sufficient, the window must be
   unmaximized first.

This commit fixes all three problems. This does mean that we can't use
Util.spawn any longer, since it doesn't return any reference to the
spawned process. Instead, we mimic what Util.spawn does internally, but
without the extended error handling (which isn't really needed anyway).
This allows registering a completion handler that remaximizes the
window.

Closes: #7