Use Opportunity Iterator to position text fragments in NGLineBuilder

This patch introduces NGLayoutOpportunityIterator to NGLineBuilder so it
can use it to search the next available opportunity to position text
fragments.

With this patch NGLayout starts supporting a base text floating around
floats that are positioned before an inline fragment.
Example:
<div id="container">
  <div id="left-float1"></div>
  <div id="left-float2"></div>
  <div id="right-float"></div>
  The quick brown fox jumps over the lazy dog
</div>

BUG=635619
TEST=NGTextLayoutAlgorithmTest::TextFloatsAroundFloatsBefore

Review-Url: https://codereview.chromium.org/2739683006
Cr-Commit-Position: refs/heads/master@{#456278}
15 files changed