Remove all old layers before adding a new root layer (fixes #2259)

This fixes #2259 which was caused by some of the previous layers sticking around incorrectly.  Depends on mozilla-servo/rust-layers#69.

Also includes some related cleanup as separate commits.

No reftest because our test harness doesn't yet support navigating to a new page (#2574).