Merge pull request #3249 from yebblies/exptocbuffer

[DDMD] [refactor] Move Expression::toCBuffer and helpers into hdrgen.c
Move Expression::interpret into a visitor class