Screen Orientation API: cleanup, simplify and fix implementation.

This CL creates new types to better reflect screen orientation types. It
also simplify ScreenOrientation.cpp, following spec simplifications.
Finally, there are some changes related to |m_lockedOrientations| that
was a bit buggy by nature, assuming that only the current fram could
change the locking.

BUG=162827

Review URL: https://codereview.chromium.org/219463003

git-svn-id: svn://svn.chromium.org/blink/trunk@171405 bbb929c8-8fbe-4397-9dbb-9b2b20218538
[FastTextAutosizer] Do not inflate table parts that do not need layout

FastTextAutosizer::inflateTable pre-inflates table cells so that
the table layout algorithm has an upper bound for table cell sizes.
After inflateTable pre-inflates cells, the layout pass will come
around and correctly size cells through beginLayout(). This patch
fixes a bug where cells were pre-inflated without later being laid out.

The bug that affected codereview.chromium.org and amazon.com both
involved nested tables with images. When images load, they can
force a layout up their parent chain because their size can change.
During layout, we would then call inflateTable and pre-inflate the
entire table but only the image's cell would actually get laid out.

BUG=357299

Review URL: https://codereview.chromium.org/236033005

git-svn-id: svn://svn.chromium.org/blink/trunk@171406 bbb929c8-8fbe-4397-9dbb-9b2b20218538