Implement @component tag (normally auto-detected).

Instead of checking for cls.inherits_from("Ext.Component") when
generating class icons, we can simply check if the class has the
component tag.

Process::Components takes care of auto-detecting components, so one
rarely needs to actually use @component tag.
Add :class_icon field to Tags.

Use it in @component and @singleton to define a CSS class name for
the tag that's used for the class instead of the default.

Eliminate the hard-wired icon rendering of class header.

Though the CSS and icons themselves are still hard-wired.
Extract ClassIcons class.
Rename Web::Icons to Web::Tree.

The ClassIcons class was separated already and this class doesn't
directly deal with icons.  Instead its primary purpose is to provide
the data for the class tree.
Change @class_icon field to hold icon filename.

Copy the files over to class_icons/ dir like the member icons
are copied to member_icons/.  Additionally the @class tag now
defines the default icon.

Similarly also generate CSS for the icons.

This change only deals with class icons in class header (icons in
tree and search are to do).
Define all class icons in Tag classes.

The @class_icon field is now a hash, containing three icons:

 * large - used in class header
 * small - used in tree, tabbar, search
 * redirect - used in search (for alternateClassName)

The Web::ClassIcons takes care of generating all the neccessary CSS.
Use @signature to display Singleton label.
Merge class icons for user-defined tags.