Can wrap any object or block returning an object.
LazyProxy.new(:object) LazyProxy.new { :object }
Block is only evaluated on first use.