fix(forms): labels should not shift unless values change

Fixes #1008.

@vladikoff or @shane-tomlinson r?
The form already updates the cached form values on `keyup` and `change` events, so there will be a conflict if you update the state again during the interaction. These two methods are really part of a "initialize form" process, so I could refactor this to better reflect that.