Replace manual ivars and accessors with properties

This is not precisely identical yet because the property attributes
are not yet declared and the defaults are different than what manual
ivars and accessors produce.

Additionally the setter for _containedItem does not have the extra
functionality.