* @brief Perform the filtering of an attributedString on the specified content filter.
*
* @param attributedString A pointer to the NSAttributedString to filter
* @param inContentFilterArray Array of filters to use, which must each conform to either AIDelayedContentFilter or AIContentFilter
* @param filterContext Passed to each filter as context.
* @param uniqueID A unique ID used by delayed filters
* @param filtersToSkip An array of filters which should not be performed, such as previously performed or inappropriate filters
* @param finishedFilters A pointer to an array which will be filled with the filters which were performed, suitable for passing later as performedFilters
*
* @result YES if any delayed filtering began; NO if it did not
* @brief Filter an attributed string, notifying a target when complete
*
* This performs delayed filters, which means there may be a non-blocking delay before the filtered attributed string
* is returned.
*
* @param attributedString NSAttributedString to filter
* @param type Type of the filter
* @param direction Direction of the filter
* @param filterContext A object, such as an AIListContact or an AIAccount, used as context by filters
* @param target Target to notify when filtering is complete
* @param selector Selector to call on target. It should take 2 arguments; the first will be the filtered attributedString; the second is the passed context.
* @param context Context passed back to target via selector when filtering is complete
* @result The filtered attributed string, which may be the same as attributedString