Switch common URL filtering and adjustments to map/filter operations

We make a few changes to the URLs we extract such as filtering out
URLs that don't match a certain predicate and adjusting the values
that we hold.

This change converts these operations to use a common set of
`filterURLs` and `mapURLs` functions that can be passed a function to
call for each item in the array of *url.URL elements.
Be consistent with the Go standard lib, use `URLs` instead of `Urls`

The Go standard library uses `URL` (in all caps) for uses of URL. We
should do the same and be consistent.