[FEATURE] Add dependencies between classes in RTE

To comply with complex CSS frameworks like Twitter Bootstrap, we need
to add multiple classes on the same element. This adds complexity for
authors. With this new dependency feature, users just have to select
one style instead of many styles.

The syntax of this new property is:
    RTE.classes.[ *classname* ] {
        .requires = list of class names; list of classes that are
             required by the class;
             if this property, in combination with others, produces a
             circular relationship, it is ignored;
             when a class is added on an element, the classes it
             requires are also added, possibly recursively;
             when a class is removed from an element, any
             non-selectable class that is not required by any of the
             classes remaining on the element is also removed.
    }

Releases: master
Resolves: #51905
Change-Id: I890e6786647a4b31e759e8a3086b3bd8c7e5dd4e
Reviewed-on: http://review.typo3.org/29643
Reviewed-by: Stanislas Rolland <typo3@sjbr.ca>
Tested-by: Stanislas Rolland <typo3@sjbr.ca>