Fix issue where dynamic access raises attribute errors.  These should be
handled and properties be created on the fly with NoneType values.
It is necessary to create some further indirection for list type
options, since accessing list type options before they have been
initialised can create an AttributeError.