Basic shallow rendering support (WIP)

WIP to fix #2393. Doesn't yet support refs or updating. How's this for a first step?