add cleaner module which makes the CST a bit more abstract by ditching open/close tokens and getting rid of now-unnecessary first/rest stuff in the other tokens