Teach Reader to use a URL

There are circumstances under which one does not have access to a `File` and it seems unnecessary to open an `InputStream` only to serialize it to a `File` which is then subsequently read back into memory due to the constructor `Reader(File)`.

Thus, this PR adds a constructor to `Reader` that accepts a `URL`.

I briefly thought about going to the next logical conclusion and adding one for `InputStream` but I am not familiar enough with NIO to avoid building up a `List<byte>` since I would not know the length of the incoming stream.

I will also submit a PR for `com.maxmind.geoip2.DatabaseReader` over in GeoIP2-java to expose the new functionality.