Split apart extension registry
Add utilities for working with the global Polymer element list.
Move AnalysisView to use simpler extension model

BUG=#692

Previously, AnalysisView had this registry designed to allow a small number of
components to handle a wide variety of model types. This was done by
associating both a 'supportsSelection' and 'viewConstructor' function with each
component, plus a priority. We would then walk all registered types until a
match was found. This technically worked but was quite hard to understand and very non normative.

This patch changes analysis over to a simpler model: the selection is blown
apart by event types as before. But, the types are handled by a known sub-view
component: slices by the slice sub view. There are different components for
singule selections versus multiple: one slice gets a single-slice-sub-view, two
or more slices selected gets the multi-slice-sub-view.

This model is only as extensible as the trace_model itself. If new trace model event types are added, then the event list needs to be updated and new types of default components added. This actually feels a bit logical, which suggests that we're on the right track.

Some of the sub-views are extensible. Extensibility is the job of that
sub-view.