Close a calendar picker on selecting a date.

The old behavior was that selecting a date updated the associated <input>
value, but it didn't close the calendar picker.
This behavior has a bad reputation because
 - It's not similar to <select> popup menus.
 - Unclear how to close the calendar picker.

We rename the existing CalendarPicker.setSelection() to setSelectionAndCommit(),
and introduce a new function setSelection(), which doesn't commit the selected
date. The latter is used to set the initial selection.

We add 100ms delay after selecting a date before closing the picker to give
visual feedback to users. However it makes testing harder. We introudce
some modes to change this behavior for testing.
Some tests remove the delay, and some tests don't close the picker.

BUG=247654

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

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