Consolidate reify and cached_property decorators

Due to a slight misunderstanding of the Python data model and the way
descriptors work, these two decorators were both implemented. `reify`
was intended to have better performance while `cached_property` was
intended to be resettable (by `del`ing the property). It turns out that
both of these use cases can be satisfied by a single decorator.

`reify` was removed.