infect: accept list of paths as an argument

Allows programmatic configuration of pathogen.
infect: better detect relative paths

Nested paths like 'bundle/public/{}' (containing more than one path
separator) were not detected as relative. Thus they were passed to
`surround`, instead of `incubate`.