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 

yeah. dart- is the worst prefix, except for all of the others :). I hope it goes away as interop becomes better, and it isn't necessary to have by hand ported elements with no relation to their JS equivalent.

Actually I dunno about -xhr and -ajax, but for dart-localstorage, I do wonder if the code can just be moved into a core-localstorage Dart type wrapper. It won't be auto-generated, but it could probably be core-localstorage without losing much. dart-list is more tricky, since it stores lots of its own state, you could end up with the Dart and the JS wrappers fighting for control :)