More tests added to reach 100% line coverage when running tests with
coverage. Also adds some more doc comments on methods.
The edgecase fix is that `.get()` would previously remove a cached
entry if it was expired, without removing the associated hostname
mapping. This could possibly result in a `CacheLookup::ExpiredOverride`
being returned when there is no cache entry at all, and the correct
return value is `CacheLookup::Miss`.
The fix here is to also remove the hostname mapping, correctly making
`CacheLookup::Miss` be returned.