Added expression to virtual definition

Part 1 of the windowing PR saga. It begins here...

This is largely a naming/semantics question more than any real functionality yet.
> What is this for? It doesn't seem like a good idea.

It's only used in `DictionaryThriftConversion`. It's really a question of what we do with definitions that have no expression. Is it going to be `Option[Expression]` (which is fine), or is `Expression` really something that should always exist?