Initial exclusion aware layout opportunities implementation

Implement exclusion aware layout opportunities algorithm. At the moment
it only handles opportunities for a fixed starting point, sorted by the
width of the opportunities, widest first. Next step is to recompute for
the next exclusion once all current opportunities have been exhausted.

BUG=591099
R=ikilpatrick@chromium.org

Review-Url: https://codereview.chromium.org/2298273002
Cr-Commit-Position: refs/heads/master@{#417562}
5 files changed