a simple property based container that's much more capable than a blankslate   but far less polluted than ruby's built-in OpenStruct