Attributes: Use the option val hook in select val hook and simplify it

The hook is still defined; not using it could cause issues in IE<11.
Also, IE10 no longer throws when value not set but it still doesn't trim the
value. IE11 has all those issues fixed; support comments are updated.

Most of this PR will need to be cherry-picked to `compat` as well.

Funny what things you find when you remove support for older browsers. ;)