Design a Web Crawler: Queues, Politeness, and Deduplication