Entity box

Merge #2330 before reviewing this.

Adds box support to the DataSource layer via `BoxGraphics` and `Entity.box`.