IR Broadcast node proposal

This is a proposal that will enable us to implement Konrad’s requested “aggregate to an expression” feature.

The proposal will move broadcasts from Python into Scala by adding a Broadcast IR node:

case class Broadcast(typ: Type, value: Annotation, id: String)

I also have an idea to simplify some of the executions inside MatrixIR/TableIR nodes: globals, column values, and Broadcast references will be packaged up into a single broadcast value.

I didn’t want to write out an essay because I want to start coding, but this is what I’m up to today.