Add lazy_property

Saw myself doing this a bunch, so I found a nice abstraction for it.