[DDMD] [refactor] Move Expression::interpret into a visitor class

Haha, diff too big to be shown.