Added basic Expression classes

A lot of details, declarations and implementations are missing because
of unresolved discussions (statements vs. assignment expressions,
primitive operations vs. macros, etc.) as well as VariableIdentifier not
holding a ref to Value (I'm guessing this is tba? or am I using it wrong?)

Throwing this up so we can get some discussion here regarding the above issues + feedback.