[WIP] Changed core icons from <img> to <div> + CSS

Just looking for feedback/thoughts on this.  So instead of rendering Jenkins UI icons using a raw &lt;img> tags, we render using a &lt;div> + CSS.  Note we are not proposing to change the actual icons with this change i.e. the user still sees the same icons.

The <div> + CSS approach allows a lot more control over the icons.

So in these changes in core Jenkins, you'll see in the Jelly scripts that instead of rendering the icons like:

```
<img src="${imagesURL}/48x48/blue.png" alt="" height="48" width="48"/>
```

You'd use a new <l:icon> Jelly tag which just names the icon you want placed in that location:

```
<l:icon name="blue-48x48"/>
```

The core icons are all then rendered using CSS: https://github.com/tfennelly/jenkins/blob/icons-via-css/war/src/main/webapp/css/icons.css

If we go this route, we'll provide backward compatibility for plugins that will allow the plugin to continue working on older versions of Jenkins.

Wdyt?
```groovy
def l = namespace(lib.LayoutTagLib)

l.icon(name: 'yellow-24x24')
raw("&nbsp;")
span(class: 'text-align top', my.message)
```

should work.