Add aria-label and alt support

Original PR was eaten by git :\

This adds a `role` to core-icon and allows the developer to apply either `aria-label` or `alt` attributes to support screen readers. As a last ditch fallback it will try to include the icon name if one was provided.

cc @alice
This just gets more and more complicated :)
As an aside, this is one of the reasons why I think we need non-reflected ARIA attributes: we need a separate way to set things which are set by the element logic as opposed to the user of the element, so that we can tell the difference and respect the user's wishes.