Feature standalone rules

This pull requests extracts the Replacer logic from the listener and the database driven rule models. 

With this changes it will be possible to load different rules into the replacer which can do anything to the dom document.

So there is no need to create another dom representation of the current document if other changes should be applied dynamically as well.

To summarize the changes:
 * Introduce a `RuleInterface` and extract the css class replacer logic to `ClassAttributeRule`
 * Introduce a `DomManipulator` which can be used without the `Listener`
 * Provide a `loadCssClassReplacerRules` hook so that other rules can be loaded.

Darüber hatte ich auch nachgedacht, wollte es aber nicht zu stark abstrahieren. An sich möchte ich es der `Rule` überlassen welche Argumente sie an den `Filter` übergibt. 

In dem Beispiel der CSS-Klasse reicht das Klassenattribut. Wenn der Filter ein neues Element erstellen soll, braucht man auch den Dom usw.

Mein Vorschlag ist folgender: das RuleInterface minimieren und der Rule selbst überlassen, ob es mit Filter arbeitet. Dann können wir für den CssClassReplacer gern das Interface mitgeben.

Der DomManipulator benötigt ja nur `getXPathExpr` und `apply`.