CrawlerMessageItem should only know relative paths

Rename the `FilePath()` method on the `CrawlerMessageItem` interface to
`RelativeFilePath()` and change its logic accordingly so that it only
returns a relative file path, to which we append the mirror root
directory in `WriteItemToDisk()` in `workflow.go`.

This better separates the concerns of the workflow versus
`CrawlerMessageItem`, which should not concern itself with the mirror
root.
Pass mirrorRoot as argument to WriteItemToDisk()

So that WriteItemToDisk() doesn't need to care about configuration; this
should be handled in `main.go`.