Prevent premature value change on emptying input

Currently, if a user empties the content of the input (empty inputValue), value is updated before the change is committed.

This PR unifies the behavior of emptying the input with typing in the input, i.e. value is updated only when the change is committed by the user.
This line seems unnecessary, since if `inputValue` is falsey it would already be the empty string since it doesn't seem like it could be any other falsey value?

It seems like setting `inputValue` programmatically causes `inputValue` and `value` to be out of sync and should not be recommended usage and setting `value` does what you want in general. Let's add a note in the doc for `inputValue` about this in L170, and also add a `commit` method, ie.

```
/**
 * Commits the inputValue to value.
 *
 * @method commit
 */
commit: function() {
   this.value = this.inputValue;
},

inputChangeAction: function() {
  this.commit();
  if (!window.ShadowDOMPolyfill) {
    // re-fire non-bubbling event
    this.fire('change', null, this, false);
  }
```