language level pushers can skip individual directories in order to allow e.g. JavaLanguageLevelPusher to avoid nonsource roots
use ProjectFileIndex service directly
cleanup