[JENKINS-23842] <l:icon> tag

A new `<l:icon>` tag + a "shim" plugin (to allow plugins use the tag but still maintain compatibility with older versions of Jenkins).

Note these changes do not (should not) have any visual effect.  It's foundation for future work with icons (moving them to be CSS based etc).

Once this tag is in place we'll have a lot more control over icons and how they are rendered e.g. allowing us to introduce CSS based icons more easily etc.  See the dev list for more details: https://groups.google.com/forum/?hl=en#!topic/jenkinsci-dev/GOiQdvctBB0

Here's a branch of the Credentials plugin using the shim: https://github.com/jenkinsci/credentials-plugin/compare/icon-tag-shim-test.  A build of that version of the credentials plugin also ran fine on an older version of Jenkins (i.e. the shim cut in and rendered the icon).

At present, the shim plugin is in Jenkins core (ui-ext/icon/shim-plugin):

1. Should it stay there, or must all plugins be in a repo of their own?  
2. If it stays there, how should it be versioned i.e. in line with Jenkins core or independently?
Aren't attributes with null value skipped completely?