Fix confusion of `.attr('value')` and `.val()` on `<input>`

`.attr('value')` should not use `.val()` on `<input>` specially.
Fixes #939

Adds `testValVsValueAttr` to confirm their relations.
Merge pull request #960 from hojs/attr-input

`.attr('value')` returns the attribute value instead of `value` property