Add a cachedproperty descriptor

It is pretty common that we create a property method that
checks if an instance variable is none, then creates it and
then sets the instance property (and then never gets called
to create it again, unless property is reset to none).

Apply this new property descriptor to a few places that are
redoing this same action over (don't repeat yourself principle
in action).

Change-Id: If6c20c5a2d145c51af3f3db56a4746eca8601253
Merge "Add a cachedproperty descriptor"