[LayoutNG] Refactor of NGLineBreaker.

This patch does a few things because I got slightly carried away:
 - Removes the fact that NGLineBreaker takens an NGInlineAlgorithm as an
   argument.

 - Has better logic around resolving the BfcOffset of the container and
   positioning floats. We were previously doing this incorrectly.
   Specifically resolving too early if we just had floats.

 - Removes the available_width_ class member and makes it a stack
   allocated WTF::Optional for clarity now.

 - Tries to simplify a few other things.

BUG=635619

Review-Url: https://codereview.chromium.org/2930963002
Cr-Commit-Position: refs/heads/master@{#479016}
9 files changed