move chain() from ceci-filters to ceci-core