first steps towards a generic transformation pipeline for krun

**please review**
The reason I added the space at the end, is because I very often use the toString representation of a term in order to visualize the AST. Adding the whitespace at the end prevents it from merging with other tokens.
Can't you use some other way of getting the desired representation? IDEs use by default the toString() function.