Changes from custom-manipulator branch. - use property type definitions. - add property free callback. - move properties into the wmManipulator struct (over alloc). - use array length from property types instead of arg passing.