pathname-match-p doesn't handle search lists
Assuming `/tmp/` exists, then
```
(setf (search-list "tmp:") '("/tmp/"))
(pathname-match-p "/tmp/foo.lisp" "tmp:*.lisp")
```
signals an error that the search-list is the wrong type.
http://www.lispworks.com/documentation/lw61/CLHS/Body/f_pn_mat.htm says `pathname-match-p` has implementation-dependent matching, but it should be consistent with `directory`.
I think this means that if the search-list has multiple entries, we need to search each entry for a match because `directory` returns a list of all files in each entry of a search-list.
This issue affects asdf. If the `$HOME/.cache/` directory doesn't exist, then asdf eventually tries to match some file in the cache directory against a path merged against `(user-homedir-pathname)` which returns `#P"home:"`.
issue