input's placeholder is inconsistently laid out

The issue was that the code relies on overriding the placeholder's
style's logical height. However the logic wasn't tight and we would
miss some cases (where styleDidChange cleared the overriden style
and layout would not know about it), thus not relaying out the
placeholder when we should have. This situation turned layout
into a 2-states state machine.

This fix removes the hackish style's logical height override and
use the override logical height machinery for fun and profit.

BUG=529252

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

Cr-Commit-Position: refs/heads/master@{#363324}
8 files changed