[icon] Consider icon invalid when source is an empty URL
Assigning an empty string to source results in the icon being considered invalid, but an empty url does not.
This is useful for binding to the icon.source property of another component and hiding the icon if no source has been specified