Introduce classes to facilitate matcher based transformations.

Signed-off-by: Rami Ylimäki <rami.ylimaki@vincit.fi>