Modify how Notice subclasses define their label

Notice::TYPES becomes a list of strings. This list is still useful in
initializers where we don't want to load and reference the actual class.

Notice.type_models becomes the way we reference the types at runtime and
we can call the class method .label to get the human readable form.

The default is to titleize it, the only override being DMCA.