.delay() bugfix and extension

Needs more testing...

Updated description .delay()

.delay( [ delayId ], duration, [ queueName ] )
delayId = An optional string containing the name of the delay id. The delay can be interrupted by using .removeDelay( delayId ).
duration = An integer indicating the number of milliseconds to delay execution of the next item in the queue.
queueName = A string containing the name of the queue. Defaults to fx, the standard effects queue.

Updated description .clearQueue()

.clearQueue( [ queueName ] )
queueNameA = string containing the name of the queue. Defaults to fx, the standard effects queue.

Also clears all delays of the element.

New description .removeDelay( [ delayId ], [ queueName ] )

.delay( [ delayId ], duration, [ queueName ] )
delayId = An optional string containing the name of the delay id. If no delayId is given, the last delay of the element will be canceled.
queueName = A string containing the name of the queue. Defaults to fx, the standard effects queue.

Currently you need to clear all delays of an element, before you can append new operations the the element or you call .clearQueue() first.

Tests

first
second
third
fourth
fifth
sixth
seventh