Joined components/eliminate and components/while_remover in components/prune_cfg
Extracted the AST-based dispatcher into a separate class. Also using the 'handle' prefix for dispatching.
core/expression: using the new dispatcher