[LayoutNG] Restore collapsed space if non-space was inserted

This patch fixes to restore collapsed spaces when non-space
was inserted before. This is seen in LayoutTest results.html,
when it updates the number of failures, once collapsed space
needs to be restored.

Also, fixing this case ended up optimizing the re-using
NGInlineItem conditions further. Allowing more cases to re-
use hits hidden bugs. This CL includes fixes for them too.

For instance, the re-use is possible when preserving white-
spaces (e.g., <pre>) with this CL. It was almost always
determined as not re-usable.

Bug: 636993
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I1d1224812b4e92e6582e3112f73372577a332bc3
Reviewed-on: https://chromium-review.googlesource.com/1154242
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579053}
8 files changed