[LayoutNG] Fix line-height quirks for atomic inline

This patch fixes line-height quirks mode to include strut
for close tags only when the end-side of the inline box is
not empty. It used to include when |needs_box_fragment|,
which is set under many more conditions.

Normally, when the emptiness (and thus the strut) matters,
open and close are in the same line. <span><br></span> or
<span><div></div></span> can make this situation.

It involved two more changes:
1. NGInlineItem.IsEmptyItem is used to determine the block
   emptiness, while NGLineBreaker had another code to
   determine line emptiness, using slightly different
   conditions. The two logics were merged, stored in
   NGInlineItem.
2. It revealed a problem in 'vertical-align' where it does
   not include inline boxes for 'top' and 'bottom' align.
   This is fixed in this CL.

Bug: 636993
Change-Id: I2d609580c96371e702dd365737e8d704b0fcccd8
Reviewed-on: https://chromium-review.googlesource.com/c/1302173
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603642}
11 files changed