[DESTRUCTIVE]
Assigns a new value for an attribute field by copying the contents of
the memory block referred to by `*val'. The input memory block
(at val->attvalue
) is not
free'ed.
The given group and field are created if they don't exist beforehand.
Function returns: