Complete the cachedproperty descriptor protocol

Refactor some parts of the cachedproperty property
descriptor (renaming attributes to the standard names
used in descriptor objects) and add on the __set__ and
__delete__ methods to comply with the full descriptor
protocol.

Change-Id: I1f1e8e301271c060d14acc3a77c094dabd120f16