mainloop: redo child source tests to not use timeouts
The timeout-based tests could fail on slow or heavily-loaded machines. Change them to use a counter-based "timeout" source rather than a time-based one, so they no longer depend on wall time. https://bugzilla.gnome.org/show_bug.cgi?id=700460
parent
8c748efc