Apphook cleanup

I've made some changes in `ApphookPool` class but I need some help before the code could be merged because at last one test fails `test_explicit_apphooks (cms.tests.apphooks.ApphooksTestCase)` with following traceback:

```
Traceback (most recent call last):
  File "django-cms/cms/tests/apphooks.py", line 104, in test_explicit_apphooks
    self.assertEqual(len(hooks), 1)
AssertionError: 3 != 1
```

I suspect, there is a problem with loading only  a single class from module that registers more classes (`cms/test_utils/project/sampleapp/cms_app.py`) but I'm stuck. This class is given in APPHOOKS config variable.

What is more mysterious for me is that current code passes the test but actually does not do thinks that much differently.

Is my code acceptable and can be fixed to pass all test cases?