Add optional attributes

* Optional attributes will not be included in public attribute listings
unless set in server response or locally. Therefore they cannot have a
default value.
I would also with a `optional: :strict` possibility to ensure that a KeyError is raised if the attribute was not set.