script: Improve dirty propagation and fix script-layout synchronization.

This fixes race conditions whereby layout and script could be running
simultaneously.
Address review comments

Conflicts:
	components/script/dom/element.rs
layout: Fix De Morgan's Law error in incremental reflow, allowing
float/absolute layout layout to be idempotent again.

Fixes the maze solver.