rem: WMDeleteFromArray(WMArray *array, unsigned index)
add: WMDeleteFromArray(WMArray *array, int index)
context: WMDeleteFromArray(WMArray *array, unsigned index){    if (index >= array->itemCount)        return 0;    if (array->destructor) {        array->destructor(array->items[index]);    }    if (index < array->itemCount-1) {        memmove(array->items+index, array->items+index+1,                sizeof(void*)*(array->itemCount-index-1));    }    array->itemCount--;    return 1;}