Improvements to d-mode

Fixes in these patches:
* Fixed sized array
* Interface inheritance
* More attributes allowed as protection level label
* Fix a potential deadlock in imenu generator
* Fix functions in classes with base class/interface
* Various fixes that make the workaround more robust

I have a question regarding the 2 places where you have the comment "Emergency Emacs 23 fixes" .  On my computer I have to uncomment the block and use that instead of the default code, otherwise my class names will be in variable name face.  I wonder why these blocks are commented out in your original code because they are essential at least for me.

Cheers