What is a distributed crawler and what does it do?