Improved roles with regards to subclassing.

It is now possible to use roles with subclasses. I also made it possible
to combine blacklists and whitelists with subclassing.