Fix incorrectly calculated size/position information for writing-modes

List of changes:
- Calculate margins before we switch writing modes for a child CS
- Collapse MarginStrut and update parent's BFC if we lay out the block
  that establishes a new formatting context.
- Rewrite NGBlockLayoutAlgorithmTest::CollapsingMarginsCase5 that
  verifies that we correctly collapses margins in different writing modes
- Set ShrinkToFit to child's CS if it's orthogonal to its parent.

BUG=635619

Review-Url: https://codereview.chromium.org/2651793013
Cr-Commit-Position: refs/heads/master@{#448626}
7 files changed