hide "(no value)" from select cfs if it doesn't match pattern and has default values

the reason we require existing "default values" here is sometimes we want to
force users to select a value(i.e. no default values), even "(no value)" is not
valid(doesn't math the pattern), it's a good initial state for select input
in this case. consider a "Perl version" cf in a bug report.

but we should always show "(no value)" on cf admin page so admins can delete
default values.
Merge branch '4.4/select-cf-hide-invalid-empty-values'