Registers the given model(s) with the given object tool class.

        The model(s) should be Model classes, not instances.

        If a model class isn't given the object tool class will be registered
        for all models.

        If a model is already registered, this will raise AlreadyRegistered.

        If a model is abstract, this will raise ImproperlyConfigured.

def register(self, object_tool_class, model_class=None):
        """
        Registers the given model(s) with the given object tool class.

        The model(s) should be Model classes, not instances.

        If a model class isn't given the object tool class will be registered
        for all models.

        If a model is already registered, this will raise AlreadyRegistered.

        If a model is abstract, this will raise ImproperlyConfigured.
        """
        if not object_tool_class:
            return None

        # Don't validate unless required.
        if object_tool_class and settings.DEBUG:
            from object_tools.validation import validate
            validate(object_tool_class, model_class)
            # = lambda model, adminclass: None

        if not model_class:
            models = get_models()
        else:
            models = [model_class, ]

        for model in models:
            if model._meta.abstract:
                raise ImproperlyConfigured(
                    'The model %s is abstract, so it \
                    cannot be registered with object tools.' % model.__name__)

            # Instantiate the object_tools class to save in the registry
            if model in self._registry:
                self._registry[model].append(object_tool_class(model))
            else:
                self._registry[model] = [object_tool_class(model), ]