Add LazyAttributes

Supports supplying some attributes wrapped in a block, so that they can
be computed on-demand, instead of ahead-of-time.