Removes Dialog metaclass

Dialog is no longer an abstract base class.  However, it should still
not be used directly; subclasses still need to override the body,
validate, and apply methods