Don't craw same URL twice
use closure inside Crawl

instead of making crawled_urls a package variable
fetch URLs concurrently using goroutines

synchronize goroutines using sync.WaitGroup
add url to crawled_urls before starting the goroutine

to avoid interleaving