add core-icon* and port examples

This also adds extra config info to the code generator, and refactors it to allow more stuff if we need it. The new option allows it to omit an import from the generated code.

A few TODOs here:
* .jsElement.callMethod pattern appears in a few places. I'm going to look at fixing methods generally.
* we might want to add HTML import redirects for the HTML files in packages/core_elements/src/core-icons/iconsets/, but I'm not 100% sure yet.

R= @sigmundch @justinfagnani 

In cases where the type specified in the jsdoc is not representable as a dart type, like String|Number for icon, it'd be nice to include it in the docs. We could use the jsdoc format for now: `[icon] {String|Number}: The name of the icon or the index of the icon within in the icon image.`