fix(select): revert commit to fix skipping over blank disabled options

An earlier commit caused an error where the first option of a select would be skipped
over if it had a blank value. This fix adds a test case to identify this case and shows
that reverting the earlier commit causes the behavior to change.

Relates to #7715
The deep watches are needed because we need to re-render if the list of options changes (`valuesFn`).
Also, the `selectedSet` is recreated every time and so we need to check whether its properties have changed.