Whitespace
Define `defattr` for attribute functions

`defattr` is a convenience macro which expands into a two-arity
function: unary get, binary set.
Define `defenum` for enumerable attribute functions

The `defenum` macro expands into a two-arity get/set function where the
attribute name is mapped to and from keywords and strings.
Use new `defattr` and `defenum` macros
Remove unused refers